{"_id":"cherow","_rev":"545-9c9e56229d2dbf098a547190726c91a4","name":"cherow","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","dist-tags":{"latest":"1.6.9","bleeding":"4.12.20181101","dev":"1.6.8-dev.20190719"},"versions":{"0.1.0":{"name":"cherow","version":"0.1.0","description":"**WORK IN PROGRESS**","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","engines":{"node":">= 5.4.1 < 6","npm":">= 3.5.3"},"homepage":"https://github.com/zubuzon/cherow","repository":{"type":"git","url":"git+https://github.com/kflash/cherow.git"},"bugs":{"url":"https://github.com/kflash/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md"],"scripts":{"build":"rollup -c rollup.config.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.42","@types/node":"^8.0.24","chai":"^4.1.1","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.0","npm-check-updates":"2.11.2","npm-run-all":"^4.0.2","rimraf":"^2.6.1","rollup":"^0.45.0","rollup-plugin-buble":"0.15.0","ts-node":"^3.3.0","tslint":"5.5.0","typescript":"^2.5.2"},"dependencies":{"acorn":"^5.0.3","acorn-jsx":"^4.0.1","angular":"^1.6.6","benchmark":"^2.1.4","eslint":"^4.6.1","esprima":"^4.0.0","has-flag":"^2.0.0","is-utf8":"^0.2.1","jazzle":"^0.5.880"},"gitHead":"0a77bff86efdd038cde942975da3035f691661fa","_id":"cherow@0.1.0","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-05yEUd0JccDNmOK76RFuC7k49ZKVrm5n5lGpnkKPuS0VHuRlV6LNtE5WccKw8lHWOySdvRr1SvQ0x9rviJRHOA==","shasum":"c3f894f9f6cede9987a6bcb155f94378ebc25ef0","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.1.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCC97wK6WJr1zS2qouliGnHuWtejZZQmGIlDsfgknuuwgIhAIBmix+msWa8QpWb7BBXVso6YkyAQlGG55I+6VZhB/7w"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.1.0.tgz_1505371524946_0.42339286440983415"},"directories":{}},"0.1.1":{"name":"cherow","version":"0.1.1","description":"**WORK IN PROGRESS**","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","engines":{"node":">= 5.4.1 < 6","npm":">= 3.5.3"},"homepage":"https://github.com/zubuzon/cherow","repository":{"type":"git","url":"git+https://github.com/kflash/cherow.git"},"bugs":{"url":"https://github.com/kflash/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md"],"scripts":{"build":"rollup -c rollup.config.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.42","@types/node":"^8.0.24","chai":"^4.1.1","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.0","npm-check-updates":"2.11.2","npm-run-all":"^4.0.2","rimraf":"^2.6.1","rollup":"^0.45.0","rollup-plugin-buble":"0.15.0","ts-node":"^3.3.0","tslint":"5.5.0","typescript":"^2.5.2"},"dependencies":{"acorn":"^5.0.3","acorn-jsx":"^4.0.1","angular":"^1.6.6","benchmark":"^2.1.4","eslint":"^4.6.1","esprima":"^4.0.0","has-flag":"^2.0.0","is-utf8":"^0.2.1","jazzle":"^0.5.880"},"gitHead":"16a24551dbbf03692fd73f940d9cb60d609f685d","_id":"cherow@0.1.1","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-IubjgxhwLW26//ivdjELlzuKiWwx+fF4+YgJAkWmAcacXY4JN7hz7c+MAfG7sJ94dSvhWybe4HAG3wteCHe/0w==","shasum":"d542e275062b0e92438ce566dd126cb19db52d46","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.1.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDH6eNPW/7Fo2hISf2c2hIEQ9cv4uyTbIy/rugSsLOY7AIgf3WiV4GX36xpJ5kFkfntd0fWOWlta1DgbTu+GH9LYgI="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.1.1.tgz_1505389396466_0.583701858529821"},"directories":{}},"0.0.2":{"name":"cherow","version":"0.0.2","description":"**WORK IN PROGRESS**","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","engines":{"node":">= 5.4.1 < 6","npm":">= 3.5.3"},"homepage":"https://github.com/zubuzon/cherow","repository":{"type":"git","url":"git+https://github.com/kflash/cherow.git"},"bugs":{"url":"https://github.com/kflash/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md"],"scripts":{"build":"rollup -c rollup.config.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.42","@types/node":"^8.0.24","chai":"^4.1.1","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.0","npm-check-updates":"2.11.2","npm-run-all":"^4.0.2","rimraf":"^2.6.1","rollup":"^0.45.0","rollup-plugin-buble":"0.15.0","ts-node":"^3.3.0","tslint":"5.5.0","typescript":"^2.5.2"},"gitHead":"3b3440f0c3608a1551ddf6934ca5212ac88e58db","_id":"cherow@0.0.2","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-TeqgY6bFfmdgGYC1OdEGLapoN7T2s2s1m0liPaCMLQwnKViHn9QHWjZXeF6aPnSB3YvHjLhsb8eEVrfN5fQNpQ==","shasum":"5886e511b9ec590c0828a1d16345c668a0cea739","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.0.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDl/EXqpP1+ZGX92MzkBe+CU2t9hOE1UMjHysc/h0wFFQIhAJaas71R6Oe5IJYplOJ8PW+kV2F3iVKl3zYTMSrtSTPz"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.0.2.tgz_1505456816674_0.6882402426563203"},"directories":{}},"0.0.3":{"name":"cherow","version":"0.0.3","description":"**WORK IN PROGRESS**","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","engines":{"node":">= 5.4.1 < 6","npm":">= 3.5.3"},"homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md"],"scripts":{"build":"rollup -c rollup.config.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.42","@types/node":"^8.0.24","chai":"^4.1.1","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.0","npm-check-updates":"2.11.2","npm-run-all":"^4.0.2","rimraf":"^2.6.1","rollup":"^0.45.0","rollup-plugin-buble":"0.15.0","ts-node":"^3.3.0","tslint":"5.5.0","typescript":"^2.5.2"},"gitHead":"3b3440f0c3608a1551ddf6934ca5212ac88e58db","_id":"cherow@0.0.3","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-Ixx4xhvnzOOxEynQs4jpdURrdjxW6abMCzg8IjxunnQtd9CG6kDdsUAq+7EPD9MIJzPT+eymcgOiZ907851mSQ==","shasum":"550b19452d03cba40d321d155d440a62653da21e","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.0.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDT1j4AsSST53sN4JQdQ1xrvoH8Q8RXdaCJBnqjNGP8jQIhAN08x4034IAgN06rdHTi0lQxYLJABzfyjW239QfMb1rS"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.0.3.tgz_1505456970024_0.37984547624364495"},"directories":{}},"0.0.4":{"name":"cherow","version":"0.0.4","description":"**WORK IN PROGRESS**","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","engines":{"node":">= 5.4.1 < 6","npm":">= 3.5.3"},"homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md"],"scripts":{"build":"rollup -c rollup.config.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.42","@types/node":"^8.0.24","chai":"^4.1.1","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.0","npm-check-updates":"2.11.2","npm-run-all":"^4.0.2","rimraf":"^2.6.1","rollup":"^0.45.0","rollup-plugin-buble":"0.15.0","ts-node":"^3.3.0","tslint":"5.5.0","typescript":"^2.5.2"},"gitHead":"36a0e499b350fe605c6787a75f2b0842a760e88d","_id":"cherow@0.0.4","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-OMHgBUoCDwwAnMUZvSbYdWFrDM8mbrvw1AU9OzzDeHosQaaXU76zz19ncCOP8skxW6YbHjVLIvJhFWacVHwi6w==","shasum":"9042af4358f9c81007bc1d5f7db187e058f138ea","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.0.4.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDhVFKrJyebXjcppeyw5z/FsN1A+YGE3px5TBZZs8njeAiEA1ggNEH0tGdEWZaLqEUb21ktNGEWVkhnhYZ7H28l3GEw="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.0.4.tgz_1505475922275_0.5861063017509878"},"directories":{}},"0.0.5":{"name":"cherow","version":"0.0.5","description":"**WORK IN PROGRESS**","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","engines":{"node":">= 5.4.1 < 6","npm":">= 3.5.3"},"homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md"],"scripts":{"build":"rollup -c rollup.config.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.42","@types/node":"^8.0.24","chai":"^4.1.1","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.0","npm-check-updates":"2.11.2","npm-run-all":"^4.0.2","rimraf":"^2.6.1","rollup":"^0.45.0","rollup-plugin-buble":"0.15.0","ts-node":"^3.3.0","tslint":"5.5.0","typescript":"^2.5.2"},"gitHead":"2cf9594abf74fafa292ac5c9ec1aac05c5ccd482","_id":"cherow@0.0.5","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-prlzFe4jQXpm5fPkZ7UGG9gwAIdsKUfpJMpSe61ASlWlpBCltNFb201i61vtxtvii+7a8yNAScKhf3dD6nIQZw==","shasum":"584e82a8689ce824d4a33b6d87d9ba55e933cd61","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.0.5.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCY42/FY4IqROh42cBp7oE6bSnhK+kHlmwuLuU3qssGNwIhANSghGomQ0zZEnPLQL5lZWLqb8dWzJWGP8qWQ6lSnC9e"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.0.5.tgz_1505488306618_0.9877402407582849"},"directories":{}},"0.0.6":{"name":"cherow","version":"0.0.6","description":"**WORK IN PROGRESS**","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","engines":{"node":">= 5.4.1 < 6","npm":">= 3.5.3"},"homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md"],"scripts":{"build":"rollup -c rollup.config.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.42","@types/node":"^8.0.24","chai":"^4.1.1","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.0","npm-check-updates":"2.11.2","npm-run-all":"^4.0.2","rimraf":"^2.6.1","rollup":"^0.45.0","rollup-plugin-buble":"0.15.0","ts-node":"^3.3.0","tslint":"5.5.0","typescript":"^2.5.2"},"gitHead":"798430c8f2f918ba7ff525ae74487d6beaf14f64","_id":"cherow@0.0.6","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-0Rwg8q6/aKgCTS7lb83PSG/HJDCj31sWpO6UpfJfPi7uRr79APBtqBKB86avHUL5DvaIFjlLh/JPDG8Xc0L42A==","shasum":"4e3205adf7434057104423b95e6d0c393f28e547","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.0.6.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICnFTvLQpQyi34udPN7uhZLS8doArq+oQznqymZcf5D2AiA+x28hVAJ0uhT9AA0ZWjk3eW0nKc6OAor14stwEOhj8w=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.0.6.tgz_1505515585427_0.33922343351878226"},"directories":{}},"0.0.7":{"name":"cherow","version":"0.0.7","description":"**WORK IN PROGRESS**","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","engines":{"node":">= 5.4.1 < 6","npm":">= 3.5.3"},"homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md"],"scripts":{"build":"rollup -c rollup.config.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.42","@types/node":"^8.0.24","chai":"^4.1.1","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.0","npm-check-updates":"2.11.2","npm-run-all":"^4.0.2","rimraf":"^2.6.1","rollup":"^0.45.0","rollup-plugin-buble":"0.15.0","ts-node":"^3.3.0","tslint":"5.5.0","typescript":"^2.5.2"},"gitHead":"374fc6847b572a5ed2764df0535870d881acd6e9","_id":"cherow@0.0.7","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-8QAgDFEVqzIzvoyOwXHVUaOhGD4dc8qs1DzB9Xr9UZ/XzI+vsQHa/bT6R+u05l9oKl/877uOF+oueuQLdvXEvg==","shasum":"6e59a44805fddf183f31ab837c0fad7849a264ea","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.0.7.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDIe/pUL3EbIzh7HxY/4aKm+3VLAlnyBdbW941jopOmxQIgVHUm+44zSYEeu/U8Sir/LrrubeZR+zqlCGoR+DkC7Mg="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.0.7.tgz_1505531293586_0.16880463296547532"},"directories":{}},"0.0.8":{"name":"cherow","version":"0.0.8","description":"**WORK IN PROGRESS**","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","engines":{"node":">= 5.4.1 < 6","npm":">= 3.5.3"},"homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md"],"scripts":{"build":"rollup -c rollup.config.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.42","@types/node":"^8.0.24","chai":"^4.1.1","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.0","npm-check-updates":"2.11.2","npm-run-all":"^4.0.2","rimraf":"^2.6.1","rollup":"^0.45.0","rollup-plugin-buble":"0.15.0","ts-node":"^3.3.0","tslint":"5.5.0","typescript":"^2.5.2"},"gitHead":"21b7f1bbc8e525f07062228a16f05e68c67e3667","_id":"cherow@0.0.8","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-HA+fwRD9rJ4LO65gEkTRL/Ou1pIUF8rhjSbq0O6yW1E7L7xuq3M+JYmb+MjpTFg1g5JXnVOS0HHqqYJFl4/u4Q==","shasum":"cca068547cef61fac9a9c48ce84892a7d4b7930d","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.0.8.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBUpXntQLTLqivkegbyLSI4OwvAGVeP89vKAY7dHKq4YAiBJNpuQLBzGNxpDnqp57EOoGNOczb61XA0X7hA707RrcQ=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.0.8.tgz_1505573518248_0.12856055214069784"},"directories":{}},"0.0.9":{"name":"cherow","version":"0.0.9","description":"**WORK IN PROGRESS**","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","engines":{"node":">= 5.4.1 < 6","npm":">= 3.5.3"},"homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md"],"scripts":{"build":"rollup -c rollup.config.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.42","@types/node":"^8.0.24","chai":"^4.1.1","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.0","npm-check-updates":"2.11.2","npm-run-all":"^4.0.2","rimraf":"^2.6.1","rollup":"^0.45.0","rollup-plugin-buble":"0.15.0","ts-node":"^3.3.0","tslint":"5.5.0","typescript":"^2.5.2"},"gitHead":"7b70d66d853ea2fe114e213091efa76beb4350a8","_id":"cherow@0.0.9","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-AsfoiC6omScj1fGsumGjBREZ3/6+6UAr2Vx4QbCgV51SsVT08v7goqd3LjvQSweleoFaSgu9/XJtMYbOJUUFnA==","shasum":"4287a5e6b430bfa978e1535abd6127f77f59b0f9","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.0.9.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFNcw9ZkETY3uACFlXXmahH8n9fYFaHriZ6RkIx9VkTOAiEAkd48/fC0H08tTpB4llKoCnMHaQTzphRaH+JnYQ42xWo="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.0.9.tgz_1505652351369_0.5453982518520206"},"directories":{}},"0.0.10":{"name":"cherow","version":"0.0.10","description":"**WORK IN PROGRESS**","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","engines":{"node":">= 5.4.1 < 6","npm":">= 3.5.3"},"homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md"],"scripts":{"build":"rollup -c rollup.config.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.42","@types/node":"^8.0.24","chai":"^4.1.1","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.0","npm-check-updates":"2.11.2","npm-run-all":"^4.0.2","rimraf":"^2.6.1","rollup":"^0.45.0","rollup-plugin-buble":"0.15.0","ts-node":"^3.3.0","tslint":"5.5.0","typescript":"^2.5.2"},"gitHead":"7b70d66d853ea2fe114e213091efa76beb4350a8","_id":"cherow@0.0.10","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-1C+2bp0QQTRRtoaBdnli1zoQtnW0+/2fECYB4QGb7Y86vO74qN7YF42Uo7ivg1M+1fg63AEPpGdvqOcrryVBhg==","shasum":"a17068af10f950fe4d8ba5f1d492605e88dd8ab0","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.0.10.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCKU54RVgkRdWelQBPpcqMHjTxQoXQNcfQURla4sOTCMgIhAPFyIF3xN0WYgeRz0kjmy5E6eqWJZ016BVJbW0FMjidz"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.0.10.tgz_1505652445945_0.9133148475084454"},"directories":{}},"0.0.11":{"name":"cherow","version":"0.0.11","description":"**WORK IN PROGRESS**","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","engines":{"node":">= 5.4.1 < 6","npm":">= 3.5.3"},"homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.11.2","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.2"},"gitHead":"dbd4c779fd06fe09266142e2949db63c8da61ef6","_id":"cherow@0.0.11","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-HQI3op0+cNs4I5zNPPn3asidME8VGp/cBr6OV/knJDP2YTlPfyWzkAXWqYC16y04MwGaZBkcpS3ZI6NEbdGQbw==","shasum":"d48d9da491860d52c3d308bbeb1a06cb74434082","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.0.11.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH7gUCoTCg4ZwllYN8+qc7/+ZA7JPdGm69vRUQHcbpqwAiBBhBpmQFz2OYmBmUbuHB6485B/468LTgbs9ZGvWwe3fw=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.0.11.tgz_1505706576655_0.22339296410791576"},"directories":{}},"0.0.12":{"name":"cherow","version":"0.0.12","description":"**WORK IN PROGRESS**","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","engines":{"node":">= 5.4.1 < 6","npm":">= 3.5.3"},"homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.11.2","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.2"},"gitHead":"11a18fb25f2b9761bd439892e6e61f988935330d","_id":"cherow@0.0.12","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-WLWA2r8MerU79exc9aBIahW0+raITSFrQkeRqLRzjdbyk6iyfMC9Oq+rYCetU7Y2kIwTgmdvWbBtdrrrDC0AXQ==","shasum":"53fd3c10ae9b0fd3c6b70c06f4fb0c20f0a0f065","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.0.12.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCospWO1LJ93QFcXyoqVny4Fl4WD3C1G2MSYzThdGMyewIhAJ4bNm518VWoTNXZEZpmSajLMfwxN05Jrd6CxuiI+jwm"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.0.12.tgz_1505800678566_0.5485360112506896"},"directories":{}},"0.0.13":{"name":"cherow","version":"0.0.13","description":"Cherow is a very fast, standard-compliant [ECMAScript](http://www.ecma-international.org/publications/standards/Ecma-262.htm) parser written in ECMAScript.","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","engines":{"node":">= 5.4.1 < 6","npm":">= 3.5.3"},"homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.11.2","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.2"},"dependencies":{"acorn":"^5.1.2","acorn-jsx":"^4.0.1","benchmark":"^2.1.4","esprima":"^4.0.0","jazzle":"^0.5.880"},"gitHead":"e623e3f8e8d778b74f73ad1f6f9846204c6d6106","_id":"cherow@0.0.13","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-/wiEwEa+XhTZR7hViYEkZoOwP8CF2PkAma28RZpm9cpM9T5/jFTHRwzD0W8cr1oGVOLXys6pdpysSZcTH6xBDw==","shasum":"b9e090fe1f6a5f9ed146b07ea63f86315883b111","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.0.13.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC0qxs66oifnMKp02uY2gTEqYLbFKaoFbrWig40tYlNwgIgb2tnyNotD8CIyjtxKYdFi4Vi4hd5bwakIefqhtxIkRw="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.0.13.tgz_1505870774566_0.1323180424515158"},"directories":{}},"0.0.14":{"name":"cherow","version":"0.0.14","description":"[![Build Status](https://travis-ci.org/cherow/cherow.svg?branch=master)](https://travis-ci.org/cherow/cherow)","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","engines":{"node":">= 5.4.1 < 6","npm":">= 3.5.3"},"homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.11.2","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.2"},"dependencies":{"acorn":"^5.1.2","acorn-jsx":"^4.0.1","benchmark":"^2.1.4","esprima":"^4.0.0","jazzle":"^0.5.880"},"gitHead":"12c68fb7b32a467ecc04ed9b135b09075c321d39","_id":"cherow@0.0.14","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-t4KJDXRJKm1FEivRI0Oausn9I816y7gPpRVEbFo0HcOWR8iCtB5hyvVWYVeqxQPtUne/W2f4EMOB2Em8safeeQ==","shasum":"c5adf42340769a4b0d98ee488c6813f757aa8410","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.0.14.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDo8jB9JRIenJTqN7HVoZ/bsNsMOFotOKRIVogBsbl5MwIhAOkTyb1giraFGAOv4uyDOu64FAULDsKWpjbaiORN7MPj"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.0.14.tgz_1505900946633_0.5781388389877975"},"directories":{}},"0.0.15":{"name":"cherow","version":"0.0.15","description":"[![Build Status](https://travis-ci.org/cherow/cherow.svg?branch=master)](https://travis-ci.org/cherow/cherow)","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","engines":{"node":">= 5.4.1 < 6","npm":">= 3.5.3"},"homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.11.2","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.2"},"dependencies":{"acorn":"^5.1.2","acorn-jsx":"^4.0.1","benchmark":"^2.1.4","esprima":"^4.0.0","jazzle":"^0.5.880"},"gitHead":"813580af1cc24885b9988a024b412d5083231c84","_id":"cherow@0.0.15","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-Z3VglEpvzrjEz3z/eNiAswhMuMWQyClyQxhF+PhGvcKGraIXdmfIFRZaoFf6elqbecze/DptJX+EORwkSYIguQ==","shasum":"d033e934ad0575b40dfeabf3d29c35ec264b4b57","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.0.15.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCmhPPfTkkUOJxtspRrFRBFNzNTV8x+N5SUQkMVMeNvOAIhALXjZ542mZDGxaYaRQEdEBCn05oF7d/gYTybvTqu0miU"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.0.15.tgz_1505917409992_0.8893997822888196"},"directories":{}},"0.0.16":{"name":"cherow","version":"0.0.16","description":"*Work in progress*","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","engines":{"node":">= 5.4.1 < 6","npm":">= 3.5.3"},"homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.11.2","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.2"},"gitHead":"0aeb9b58a2b44f3788ef294765766b9bbefa8e2a","_id":"cherow@0.0.16","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-EsFwZA8LfYt4L3NiDqiKVL6+yQSBhJlV1kEf+JeAEmJOxDnpNIkfyyAvSQDGv9aD8EonwtZs7tkHxscluI1sfA==","shasum":"22161d3f99c027988ea0c70329d08c4225d56977","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.0.16.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDpnTVsqyf3BYvDcMwxklt9n6OyFo78igbu0LjMjQvjiQIhAIyerIxv+yQKWB5jMPN+uVYCziaF3SOknjm2VPy4c9/b"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.0.16.tgz_1505917650528_0.023433177964761853"},"directories":{}},"0.0.17":{"name":"cherow","version":"0.0.17","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","engines":{"node":">= 5.4.1 < 6","npm":">= 3.5.3"},"homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.11.2","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.2"},"gitHead":"60d7b49dc62411cd707b02fb69d8c51b1d12d72a","_id":"cherow@0.0.17","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-vqxSLO17oHuy3+uMkNubx9g890Ii8bWQ4RDTy6lmZx61GaEz3jGbLiFLLHYCBrthEWfJZDDjyosJWQN7gp8Gyw==","shasum":"6474fbcedfd00d3082e35f2c38bbf2e9e85dcb50","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.0.17.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB8vlgYlk9hPAYqX2/CWvodFGrNlPNyeEnOGBBqHOOfkAiBXNHsodxi8Yhw/Ptxu5xUSusmNXPXXn34uCLdtdQ5L7A=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.0.17.tgz_1505917789710_0.16224502283148468"},"directories":{}},"0.0.18":{"name":"cherow","version":"0.0.18","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","engines":{"node":">= 5.4.1 < 6","npm":">= 3.5.3"},"homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.11.2","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.2"},"gitHead":"a5b817e610b36ef9e2dca3b9c9fd5c7e9822c08e","_id":"cherow@0.0.18","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-GhJhNzwNRJK222/c02bZjGpl7mhJXz6OdH+E7fxrKn732/EaTJbEphCvw4xQBxDtLD3yI6ZDNGFTaKiqBBOYew==","shasum":"49461c70b4f6c9d360728026e21ec3e502341d9a","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.0.18.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDjVGTvfCXfRl3hQ9DMM876wpYP1mXz+Q1wMbeuducpJQIhAIeiPE7S1FPvHUAngdSDRICJqZYJj9fYtANWDZT00XbF"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.0.18.tgz_1505956248439_0.3251334009692073"},"directories":{}},"0.0.19":{"name":"cherow","version":"0.0.19","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","engines":{"node":">= 5.4.1 < 6","npm":">= 3.5.3"},"homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.11.2","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.2"},"gitHead":"a5b817e610b36ef9e2dca3b9c9fd5c7e9822c08e","_id":"cherow@0.0.19","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-m4iYo2FtvTDqdxVdLFd++AWTJpWJM3MDhoo3xU6zMHPO03ol6vA4xIaDmv2CNkEFtlROIvBnN9H4nNsVHEgJCQ==","shasum":"761074af40a1773dd03c21fbfb6ada2a1c8413ee","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.0.19.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDEuyA2e/h5E2wJJJovQE2sStpx1PGa+IBd6CU26GzEsQIgbQQXD2o2yiOuBG9IjrWNu6QVdv1UakA1gjsl7QTqZbY="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.0.19.tgz_1505956344634_0.4308751728385687"},"directories":{}},"0.0.20":{"name":"cherow","version":"0.0.20","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.11.2","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.2"},"gitHead":"58f77f8f0476be30da5cc6d0b0a0cd8df8740b38","_id":"cherow@0.0.20","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-X/llOAV49aQLHjr08qdktH/AUOo46+wYsGYRa5w4zAPI/QHFUuzrTYLBoucnrWUSximAkahg/DtNatVeTgMAgQ==","shasum":"d3d9c45c10322ff993faa9573bb5f4be658a9bc1","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.0.20.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCcHeFrvCvTmVSjl8Rx7BJvr/E8dvvwikFtvE5weW2wbQIgfAjw1LnxOmf1tRQBF265QOYM4VYAhs+ZdAjEyxWEFpU="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.0.20.tgz_1505984304789_0.6924703810364008"},"directories":{}},"0.0.21":{"name":"cherow","version":"0.0.21","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.11.2","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.2"},"gitHead":"650f2437874267405ffb25ac862b0ae5a7d28cfe","_id":"cherow@0.0.21","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-vCMXygaA50Z5xF92Dzc3eDTrJ6xj1uOhyTXLrCJ0gRbN/IC1KnIYCRewqD8ie/dqz4pGAmsbzzIVb7kDaSXbyA==","shasum":"33a139ec902102e69b2ead8687792c5bb5358192","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.0.21.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEPV4TQTmscbe1uUjDIzI2ApJJz8mU0zXCkGQ3I4DaP1AiBFjvRaMahfnzKQc6vj+J6VwuEldCsY3vdxXTOlEgsqOw=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.0.21.tgz_1505996597452_0.5064483538735658"},"directories":{}},"0.0.22":{"name":"cherow","version":"0.0.22","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.11.2","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.2"},"gitHead":"66520328e4923650953df4f6cc827f96304185ac","_id":"cherow@0.0.22","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-z0xqYuq64VoXmonMiUZP7GZhTaFCQTXhTQhm/alcjvEDQbyGM82/csbwbukyR3wQHgxDd4hKBE3M4VIvv/5w6w==","shasum":"3407f0b01ff3ef007261ebf5ff7f6f4b530fa3eb","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.0.22.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE/D8TmOlh3voGpYDnn+ZrjDsZa3J6sFBer1kh+ZrDvEAiEA1ApWSkwatb/bQDAABy/hXKX3z0CSPCmmj9zjCioPiEY="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.0.22.tgz_1506004062886_0.3364031238015741"},"directories":{}},"0.0.23":{"name":"cherow","version":"0.0.23","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.11.2","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.2"},"gitHead":"cf749943656591d1bf799d85bce3cfd50b8c118e","_id":"cherow@0.0.23","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-0ej9jVLXU+ZHfdTV3uNV+JFUZDtpaWfTCkh0VH5l83fHmzWLr0SOWGRtSTI/kmkdQGhXZmJVfRTgGuFUz/v9IQ==","shasum":"c547e7f44026907cbf11c1b9c801435c237d88c0","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.0.23.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFWQumBCh31XqOMAqtPBSzPnEcHOxg7K5GICUom1PdL0AiEAvxsn8EkMMfQR70gwngkUJHBhLvzltkFlaRNfIiIbGeg="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.0.23.tgz_1506062842837_0.9102841122075915"},"directories":{}},"0.0.24":{"name":"cherow","version":"0.0.24","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.11.2","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.2"},"gitHead":"cf749943656591d1bf799d85bce3cfd50b8c118e","_id":"cherow@0.0.24","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-mynPWcVHVvIogsk4ttha9ygZr1Gwj4mMJw17M3fm9XegqneI1pj2Ls62iQjbpETXLQzllanvGzCRyrS3lCMzPg==","shasum":"6ed30cdc70e682cfbaf3f736372f53cd9d5421a0","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.0.24.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDegTZKtq2+mr4CM4tFnjuTCX3IN5sStRPG4OD7eOdbKwIgCLPz8Q4dxgLA4lhkLDbdwLv+Wu0+AxTNHkl0bG0mJf0="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.0.24.tgz_1506062940381_0.5590306066442281"},"directories":{}},"0.0.25":{"name":"cherow","version":"0.0.25","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.11.2","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.2"},"gitHead":"e52d069598890a8b3b63ed700062489b8f510d74","_id":"cherow@0.0.25","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-pvfG2IR3k+Mqyq8l1n+lB/XLmMZSGVTLF69ju5kKN42/zd7Mq978devJ5bD205V5qaBuE6g6fw6VgDvos9eiLQ==","shasum":"da83c13e337c288c287ac9633ddfcdd4d8917af4","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.0.25.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCMjWfjSjXNSKfUgBFKdo0llz+zNahi35jk85wPwATgSAIgT8O3PbjKLF1IDgo6r7GRg/Yn9vARrtALVm6H2DrX7WE="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.0.25.tgz_1506074351391_0.7282194085419178"},"directories":{}},"0.0.26":{"name":"cherow","version":"0.0.26","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.11.2","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.2"},"gitHead":"47ffe7d9550806eec03989ff5334b7ed8072c285","_id":"cherow@0.0.26","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-tcKaF4fKE1/QimY1PNlabjVL50dEDEfcMKVKOPbzTAXUGgzXVzrq6mFoGhkQfQeXbElleU9FaxkB63dEDif/pQ==","shasum":"225f95c905561d77a9b465cfd76247b8c50d971f","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.0.26.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFkf9qozbm9eyxQCIIM/a2hhlDBqo8hBPcILWC4WyPgwAiBOpHFYkhHIQWuNMZEO3MsyiPRjdc0TUNAbrfgc9bKUIg=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.0.26.tgz_1506081445379_0.8034455715678632"},"directories":{}},"0.0.28":{"name":"cherow","version":"0.0.28","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.11.2","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.2"},"gitHead":"eb072f85ac8b8ee7ec70dfbeca5123d8bdb7ad5b","_id":"cherow@0.0.28","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-lqORz+Zrk04UGO6MOhXbbxXdiAWnGyolIHC0ZgTPW/JyOYxb3q46eB5q1l+A39Dq9nBPTfJ7n5wLdrUumU139Q==","shasum":"228bc05d6adff2b7b37ead1c5d8b8947880b5169","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.0.28.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFh9zpRpzasiSo/jaPbEvckKOCSSk9YTpCtCe6eXmmXcAiAt9vB0Pzc4AroNTIGIQd491Pn0/WatuGE2BV3zNj0tdg=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.0.28.tgz_1506137779770_0.7500014081597328"},"directories":{}},"0.0.29":{"name":"cherow","version":"0.0.29","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.11.2","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.2"},"gitHead":"132dbb899191f4e9e44a31d576bf59f5f823a59d","_id":"cherow@0.0.29","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-5KkPx/MRl1NeGB6X6ZPEw/1kDi2jsEIqrO4cuPmnlfhIOBVFiFsQXhA7MrJCmE0qtV9BHcO0J2/thiZBrFFHSA==","shasum":"111368409736c2d2539d917dab05900a8ecee6be","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.0.29.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC+aWkQb6iuQF7GE0wHdl5/xLXuDlrQbQJAN6us/HcqpAIhALe5QxXdVA1ghVTrqKdqCFTA0ftHN/caJiwZY4V8JCAX"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.0.29.tgz_1506141120000_0.4688131103757769"},"directories":{}},"0.0.30":{"name":"cherow","version":"0.0.30","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.11.2","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.2"},"gitHead":"292ce183e5508b5cdc89f9fa8896f2f9fd59bc09","_id":"cherow@0.0.30","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-MCrCd4K9ne6j8pe3nNTJC/nLIwXBX+2g6E0KtB9wDtAvMtgm0o5y8aOTaUyiatvZBGsklqlMHmSOR3U8ytUOsA==","shasum":"e8f07534d3906f7e647ceac2cd815f08fd736aba","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.0.30.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCQLhszRc1o5AcfHOVTnF0mx8JxtjSppM4jpfEpjOnDfQIhAPbRIpqN/SiTCix+WxAa7fdtPJtVL4t7CdWmupUsoUT8"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.0.30.tgz_1506154397713_0.778701895615086"},"directories":{}},"0.0.32":{"name":"cherow","version":"0.0.32","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.11.2","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.2"},"gitHead":"ab3cab9a8e90c6a8ee9c3f2900e373147e5f6c6f","_id":"cherow@0.0.32","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-R4zGq5YeCfQXJ+clTvKh/kyFsS9qZG4CsXijpkAuyej29dc5YW8oWAZzZQmh5Wlx5Uxn9bHuWxT2dx+aprYLzA==","shasum":"4d4daaa0faa7a76e1271e831b288d051008c41be","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.0.32.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDAPfYfe36lUmx7GsMu7NAl7c06ZWEfVXs0VWqj3BGZcAiEAmMPxzjLUlup4/D5Rg+T7pJNAoI0sSKifyqUjclMzkRU="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.0.32.tgz_1506175191104_0.9135533683001995"},"directories":{}},"0.0.33":{"name":"cherow","version":"0.0.33","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.11.2","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.2"},"gitHead":"3aaf9bb99dd6152516d168bf1a846930aaa52607","_id":"cherow@0.0.33","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-Q48hA+npWHC/r8FVbvH6/IKDh43BL93u6AxA+fXZjwnHjgct53zlb4FvlLgtQ7BOy8/073EC1dnGLggOucMwMA==","shasum":"0d6c6e5cd07994d81cccc4f37b4685fcd7fb79e1","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.0.33.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCvi64tJNtF5OpXRS8arOFH56vtj279uDiNKitIifF5iQIhAKMQWkB/YwSVvuqEdHvYjO7a3dK3mleIq5jbgFiZ9yRV"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.0.33.tgz_1506219186062_0.1428925502113998"},"directories":{}},"0.0.34":{"name":"cherow","version":"0.0.34","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.11.2","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.2"},"gitHead":"3aaf9bb99dd6152516d168bf1a846930aaa52607","_id":"cherow@0.0.34","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-VH4Es2XmS5jDPYxqkxsnuLlah1zId8HvSqE7CB/b9k5r+chHyC7DZiqBRHNd/cLJpjT0K0t+xjlhhziSiBzEbA==","shasum":"4a6b3a033b5ea25c5e493f10f9447b77e961dd4e","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.0.34.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF3UtqRtqOze7vxEPuOTpJTXCT+UREas1d0jgAetRR5mAiAgBdfDuFsgR3g+dknSd5ya9GjeysosAai2gqV33RaiWA=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.0.34.tgz_1506219229273_0.19881537347100675"},"directories":{}},"0.0.35":{"name":"cherow","version":"0.0.35","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.11.2","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.2"},"gitHead":"f41ab400b391600f798818f50fe11cdbab88c079","_id":"cherow@0.0.35","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-VfAZYwBhgn23NRaAhCKgRP0nuA2y3Il9Oueb8jUOEZDZ4YuUhyqz+TkmW90pIQ4RswZwyvZIlVmtHZsXDHJqLg==","shasum":"2536e97c06c2758fb06e5408d1708a6ffb37238d","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.0.35.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAp9Y0dYxOmN1ZViXSqWDWglZowhFdNZjBT3N4je7ANGAiBA02qf9OzXX/Fob2N2T0yalzBklQxwWEyIq+MejpoCTA=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.0.35.tgz_1506254562904_0.7992617669515312"},"directories":{}},"0.0.36":{"name":"cherow","version":"0.0.36","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.11.2","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.2"},"gitHead":"44b9bedd0bc041ad76b2ea592f137db296e70be8","_id":"cherow@0.0.36","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-XLz2ut8hNQXyrrUoWRYRcySlrzQhjR+5F3J4xYLTuzFYwZSdmB2/4HZ3noL6njygwfTA56o0XVRqJo6ET64iDw==","shasum":"33bee46529039e0db68b99a38f06edc2eddd8688","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.0.36.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID8QNaRfTGIo95y4PAKoDBY0r6DlS+n4vES3OVNSOT+rAiEAjPHSIYkeVwPbKqiuUR5hvXJcxllHQrisGlCFgYV5ZaM="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.0.36.tgz_1506265003212_0.2643689997494221"},"directories":{}},"0.0.37":{"name":"cherow","version":"0.0.37","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.11.2","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.2"},"gitHead":"6a770007a2fe1cbb614e3eb746a2ee3d7c6e9f01","_id":"cherow@0.0.37","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-/KISzd2g2mkwah9uQH5BUH1fjgLoShsyEWkpCpUABzcpS2yahMduHcmzc6EvZ5I1H6zYp+izJStRqGjpug8XrA==","shasum":"8a29230650e82bb1ec13a26247549b08b661a938","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.0.37.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDHFnpL0TeLCrmhY7DAE9SjnqO2vZd4PtGowQsGxKSb4QIgYiUAfANPA0iUsHsBvjLOkF9K9bP17lsrHw+VGSMQvis="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.0.37.tgz_1506269305247_0.1324344917666167"},"directories":{}},"0.1.2":{"name":"cherow","version":"0.1.2","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.11.2","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.2"},"gitHead":"1994cd74e52c3525604845645dddaadee6d59e62","_id":"cherow@0.1.2","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-4cMj0XHlj0YBmJjWaKgBHMi6v8/7knS/V0RjKQ52WETVuwjwyJ3sc324zPal9Wfm9eLW+hQtoxqwEMPJnHKUCw==","shasum":"b07ac27908afe2d595c9e18f59dd45db23d1112e","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.1.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHvQ2Md7k9CvKTtkY+nDIBSLXs3jgP2/BQKrG2XF2KXXAiEAuq6SMffxcBLWMSbBW0dT/xC6OhdPEzGrfBe+v52/3po="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.1.2.tgz_1506300458429_0.5162824664730579"},"directories":{}},"0.1.3":{"name":"cherow","version":"0.1.3","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.11.2","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.2"},"gitHead":"e9d0c98324405c4567f6651130e299fee2d1f0dd","_id":"cherow@0.1.3","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-wz+ZHz9M3x6E0VXKw0G4d49iu+nN9rNeoG/7193G/MaD30/di/tgwsyrXvCUmZczT4UxZf+IsdHC8WxGVJfroA==","shasum":"35a405985563eac6384f81822e72abd9b08a70b6","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.1.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCI3WlSyaLiunBaDe4Dgegf9EqfpizDJ2No+GRA1NXdSQIhAOZhULRcsPWNDWesmT81LIot59mP/j5aPSfiyx4cuCH1"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.1.3.tgz_1506308616167_0.77483852324076"},"directories":{}},"0.1.4":{"name":"cherow","version":"0.1.4","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.11.2","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.2"},"gitHead":"c446c0925bd0ad22bccf26910e3bc30114e2a57c","_id":"cherow@0.1.4","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-zYfEWVSUCvYzl1yyEDmT4SkORZtdBwWe0c8sQaLNH11fImIrPoOhLRZkOrQl506i9w9gM0HkZ+AJsc+bLOx3Sg==","shasum":"29884f9c63ad501a8a21de03c71867f2cfe396f4","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.1.4.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCDt7QtiTB5Duxz3nssf9t2tj9G8AMnhzpHYYMzSotKuAIhAJkv2qQ+jKHuWFPnLG1ecveJ/z5XLldbaQRiVJX1XEPe"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.1.4.tgz_1506338629457_0.35331015358678997"},"directories":{}},"0.1.5":{"name":"cherow","version":"0.1.5","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.11.2","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.2"},"gitHead":"20fba5462d4b5e94b0256e1cb7aa346bfc67dc2e","_id":"cherow@0.1.5","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-3ayK8VnEUtArN2VIKBsS3+WyGtpV4RLJ0BWeCnvmISBS+IWUjpnBq45wZrMU3XokjEegxtiQqE3yCy4ZsNiy3Q==","shasum":"9523730b9942d74df0a054badafe90e8c42ec44a","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.1.5.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFk+R2iRtOOBnjN3p2fjh3zmJcaKgRMjiTS9RQnIxU9XAiEA91RZA3LggAuY+DfvaffkYhRcGYkS1KsZNyUwvELfKTU="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.1.5.tgz_1506348255337_0.44518725387752056"},"directories":{}},"0.1.6":{"name":"cherow","version":"0.1.6","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.11.2","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.2"},"gitHead":"488b1316515bc09b3f3d9ed3b1750a9f41d58644","_id":"cherow@0.1.6","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-kYU4vndL7RHJsV8zqT1t+ECY2fxDHwa5ekuZdEgK/Nv8f64CjHdDFL1EB/STDLe1XzWd8B5aPZvTXSIbG55Npg==","shasum":"6f4da4c5523b038b6418da1410330cb80eb4151f","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.1.6.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFTOiRQQRjQme/FofdXTnktximxlPgR5FyXCHTTgoFVVAiAGHn6tQxyzGSllMXbYoydbOBu8H8G+L6D93u9L1KoaVA=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.1.6.tgz_1506350793414_0.6311850976198912"},"directories":{}},"0.1.7":{"name":"cherow","version":"0.1.7","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.11.2","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.2"},"gitHead":"4bd67e5fb9a6fc380010f0f4c480dd574834361b","_id":"cherow@0.1.7","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-SiO8mM1rcSdAD4Ux8fRH0F9d6KHpjKMLXjS08Xzl9E8uDNAJ1kF8cRO7prlDbaZa6Hyo6FKc0ZJ+DbZVp340Xg==","shasum":"4343adcddf58ace14afad61abcd388b5688ff985","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.1.7.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC2/1OO/LkZnS07rbD0552kEUuFMkcHSTnwhAwyskyPqQIgRVIH8kRyzXROhaWtiMIjLWxFpXjSXiLvGlMAckYgaBA="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.1.7.tgz_1506353236313_0.698563304496929"},"directories":{}},"0.2.0":{"name":"cherow","version":"0.2.0","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.11.2","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.2"},"gitHead":"d6fd910db1eb24538166a9b36c4c37937b0a0c7a","_id":"cherow@0.2.0","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-8zVTZnO4uV1axNcTQiiPIrLjiGLESmrFCarNLGPNCQvn1EtsJovOW8nbqImPlNhZJw8E4PnTFYQXvUry603/kQ==","shasum":"dd0168e6fd20b4da0c3f351bc90a45b4f49875bb","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.2.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICacRxV6naAIqBle6/gJz0gLlPPgJStDF9NMUMWkHDliAiEAu4ylrbcj4co3NCx1ZekvfhGUycLuU4Ga1oaeshyFias="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.2.0.tgz_1506380738469_0.20424826885573566"},"directories":{}},"0.2.1":{"name":"cherow","version":"0.2.1","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.11.2","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.2"},"gitHead":"2f909893c8889e122d2cb7fec0681daf7a2afbc7","_id":"cherow@0.2.1","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-ky9aboJzstD2vGCMRPGE7vCJoo3mpbuAZstpVILttvXEOPg1jY40ME9uqdAQa9uhdVcQb+z39WKHi51LSO6AkQ==","shasum":"84fea52e84a5cffa6f87133812b85ea2ceb21ec2","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.2.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDRjtp4hLIE4m9iKghIDH7pd6w7eM+YrRhd6VWwx7bOuAiEA4ZEEoaTsf39pP0XD3LrMEC2CRnG5oCMrzoY1t8HzgMY="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.2.1.tgz_1506426523070_0.1335325709078461"},"directories":{}},"0.2.3":{"name":"cherow","version":"0.2.3","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.11.2","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.2"},"gitHead":"9b3cbd1e13c57253a5e54158c87d9502a9525c21","_id":"cherow@0.2.3","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-bs44arn5mM9mx4ggiE6qmroF7LYVf8By8CgUmm8xbiXqWHxj3tl+y14V8LGhzpbF2wtDBwlY1o2Oc4ZMI29o7A==","shasum":"0c52370c5104db9d05c279bc7ca7e4236daf730c","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.2.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC53l/WYqz9fU393LTDdG2WCikZw/l5KPfXf0eCuXnN+AiBtcRW0w8Vxqip2kOG057IZJ8fJ9rQXT022zAmr3vjkVA=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.2.3.tgz_1506432713928_0.11035925755277276"},"directories":{}},"0.2.4":{"name":"cherow","version":"0.2.4","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.11.2","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.2"},"gitHead":"02754f218f987f7d47087602fc6941beb598cddd","_id":"cherow@0.2.4","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-tTZ2sUzB97EsjNSVVyMOAkx+dGlwMPr5amLKfgRfxlivRL6q8baJVo0DAjc+MmJHlvQLG4BTZCxpAKr1PFr2pg==","shasum":"08da6a218f6a2cb778efb5f70f9ad63d50d3ad36","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.2.4.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCV20NIzujP2lmYrKwtIUjON1q1n0rJ1mXUnBW5pHjUfQIhAI030GOUlUwa5YtHO+pqY4h9jSRXfWspTBgAoVos4jIZ"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.2.4.tgz_1506434616870_0.6416700643021613"},"directories":{}},"0.2.5":{"name":"cherow","version":"0.2.5","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.11.2","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.2"},"gitHead":"091ba6bf989c8eeab0cedd76975b6d62a4730137","_id":"cherow@0.2.5","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-cRXT8c4W99Zg5w/VCj3turl/8yaq7zxju6oOplqJsdREff7D2T+YElmWz1PbTak5IxTnpmcJmOY6/TuPmJ/UVQ==","shasum":"2dfc4f3d94f02ed1eb3b5ef6804417269fadf2ec","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.2.5.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICINDV1ILJvwA229dG3eqp722nBrQMdCz4WAWH25Qx9wAiEA50yAR6U5foCBMCFj3aU2/g1ykds4uYpu5kmQD46P1dY="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.2.5.tgz_1506438330738_0.6723514073528349"},"directories":{}},"0.2.6":{"name":"cherow","version":"0.2.6","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.11.2","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.2"},"gitHead":"162497a0617b3fb0be8b6589c91d3de826a6bbde","_id":"cherow@0.2.6","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-5uW2xY1eDjnYrPw5QjOVf20qLhuB8JBexIGJSPJNRLN/bQAd8j/1GQfKisUJtjI3ok1R1vr6S9BBGlOcVt+lxg==","shasum":"f2d7fe76e841f3819740aa6a548c6c8398f64e61","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.2.6.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC0Y3fHSTEMQ2iJq0KkdJuHm5sVsejDncvfekdd2+n9iwIgW/S63tPrFvnWwzoh4ZfRlet5gZgFBO25CYy60Pmg/0k="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.2.6.tgz_1506444520423_0.6513460641726851"},"directories":{}},"0.2.7":{"name":"cherow","version":"0.2.7","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.12.1","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"gitHead":"1a61b90d62e67881a8de1a95b36a3bc680d7bd18","_id":"cherow@0.2.7","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-OVlwL7Rye9E24AP57QcPc7JMCgi3FqeXKx1+8YUBHhVYfs3c9DCMZqV9oPN1pzl964um8BtMMzrxUWVg5MgYrw==","shasum":"f88848654af6d31ecc1aa4b634aebf82c53faa3c","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.2.7.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEhbzaIPhCXEs8/ZW1gUPZuJSltf4Hr/9dBSRBWCa+cwAiEAvvNJb5sNjTqwezdSI/lw+ISAoII8wDLccyYCkVREwfg="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.2.7.tgz_1506469232294_0.07254193467088044"},"directories":{}},"0.2.8":{"name":"cherow","version":"0.2.8","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.12.1","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"gitHead":"5c529726e117e38c820da8ae6c46635caff6a4ea","_id":"cherow@0.2.8","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-36OGqWSOWlUNEYbaLlsDt8U3uwNGufh1Zi9/x33qE1f8OP5XSGJUUM8iZdBUFDWuppZHqqP+ilmUxA3FGxw/0w==","shasum":"a99d458a31d47942547c5b3a18d50b6de1fb28ba","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.2.8.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCTlFU56sURrgc5478is7mMKyc22bNfGUuNxv8/O9EJsgIgLtaoBJ6/WAUw8tkdbqE0wYBgvKEM3/Wxt22gglYxXhA="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.2.8.tgz_1506489664989_0.534523367183283"},"directories":{}},"0.2.9":{"name":"cherow","version":"0.2.9","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.12.1","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"gitHead":"5c529726e117e38c820da8ae6c46635caff6a4ea","_id":"cherow@0.2.9","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-lxy0AIx7TomeeG/DDAo2EhbCRXXQfX8PP6iBBUlaK5hW+JL/LsSIvGEQ4LABHQ11b9tG/TUOb+Gsc2czu2SFGw==","shasum":"03a29c95eb6e5157f6caaf1328eb5fcc8f36ecfc","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.2.9.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBTxAvvCWa1t057QrH6cg/Ch6TvMqtM2hRWbKsnt2/SHAiB4LUqkWMAnP7J52gPU48HMiF5eROskWpQwj18E0NUMsw=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.2.9.tgz_1506491539269_0.18742609024047852"},"directories":{}},"0.2.91":{"name":"cherow","version":"0.2.91","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.12.1","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"gitHead":"6c845ac81081ede4decb089af9dd266dbab31747","_id":"cherow@0.2.91","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-sQbruQaH3FYsytv+gAhkiScFG+eq0lir6HoDFzYjgFEs2b/dMMkzHk92mdSnGJR2vNjxry/uWVrHQ9OyLGhBIA==","shasum":"cd03d06226dc7730be86fcc38006b47c101e3850","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.2.91.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHvKFqwrLL8Q8e26jhONqvsD/HePgLaR1kG/eVpLKtOrAiB80p/AslExvKOxMhc8bAJvD9gAm9drKZed9zCzJes9qQ=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.2.91.tgz_1506495666267_0.4437314230017364"},"directories":{}},"0.3.0":{"name":"cherow","version":"0.3.0","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.12.1","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"gitHead":"6c845ac81081ede4decb089af9dd266dbab31747","_id":"cherow@0.3.0","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-Y1j6/6Mbwl9JTTlAPp4mnif/rwKbZPbElDOYdv8NjNTh6qWmjgriGok8Q+8DjrxkUfxEgtxC6GevWSpTCtGNQQ==","shasum":"4bc259fede88231ed9ef6ef27da60c31495d1d3f","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.3.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD71P5+FLHKH8VQD37ULZTnIxSBk0o7NpeBqFd3PcpoUAIgcAA1+DyyPgNFNcgA35AEJcD1dye1olEwKkRsc6Nk7L4="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.3.0.tgz_1506497288534_0.05736251571215689"},"directories":{}},"0.3.1":{"name":"cherow","version":"0.3.1","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.12.1","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"gitHead":"e7af0947bc1e8aec5eda8194f62eacc79f4ea64e","_id":"cherow@0.3.1","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-zdsBjUg8PGHUkEV/2jXp3ztaL7+oyeO4s5bO6fbgsL8dSPc/RtzsXFvEmpFX/x+r2gnuN/Vf9GLho+ZtwrEtXg==","shasum":"2c0bbcb0b442e770015922fa20c91337aac48917","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.3.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEjRoPdY2Wxg0qiDw00stJknFdSqWsPWaLxCdcskXd9ZAiB/El6eswDWbl3Y32+mVNzZURCZ2DkT/lKq1nkvFXfjgA=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.3.1.tgz_1506509751849_0.14480151725001633"},"directories":{}},"0.3.2":{"name":"cherow","version":"0.3.2","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.12.1","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"gitHead":"95e9f4fd2aef74ea660d0308acc43311e46985dc","_id":"cherow@0.3.2","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-WxrM73lAKRYAUhJpOpR9DRj46xGUj3QnxGJjdq3t4OpXbhnfykjZstmSMebWKY/PRenHOJCxPwO7DxB9EELTiQ==","shasum":"3e4af9a7feb3509af079f355f8d71068a46ee4cf","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.3.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBHUiM/8TrN7lz8Vwjq/9PNqo+GZrrnsHXOXupPcmtLdAiADSEfNwN9XpGWn+MyoswU791FixaRbqQdWpeegmZD0qw=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.3.2.tgz_1506516032321_0.8397965957410634"},"directories":{}},"0.3.3":{"name":"cherow","version":"0.3.3","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.12.1","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"gitHead":"430d91b1101714b9bb365a921ef24c0f6641c444","_id":"cherow@0.3.3","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-LOybuw30/zwHU3XZYSq7anq4EXf85DvH4+y4r8Q879Nh/grb1d29wULHIjF+vcWVGQGgGYIy262hQq+6aKZixg==","shasum":"cf1261b83d9a2d20d73d851f39e9da046e949f8a","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.3.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBoFuyuZqaVrKC4hQwuD5kPO/NGzvlihTzctK8g9QmziAiBEDYqI0djXXQojcTpVipX/yV2q/4RT3pcG0bXl6OzuBw=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.3.3.tgz_1506559499492_0.6118055882398039"},"directories":{}},"0.3.4":{"name":"cherow","version":"0.3.4","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.12.1","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"gitHead":"4379c5fc52171d4f8e10502dcf2e7d4c479fc6e2","_id":"cherow@0.3.4","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-s6xe68G/6rmlDEukJaMqsxRRhCIC+rZQ7OkG/fJMjix62n4pb9cBOh0ZpljGppgIqYGJfMdT8ou4jmDKNikpbg==","shasum":"ff5c247e3fbb97325bfc46994ce5665f5c77b7b4","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.3.4.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCGQMcmsNU+7utOUMTNGC7eEpM2LFy7hEp/yhe732duYgIhAIpShsGKtIGVpwa+55hHseuEolzRolWfAti2tz13xcsF"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.3.4.tgz_1506565831866_0.014939508866518736"},"directories":{}},"0.3.5":{"name":"cherow","version":"0.3.5","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.12.1","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"gitHead":"1b66297f173c947b6d8c65f0a47917e4297a7258","_id":"cherow@0.3.5","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-aMPl8r97WWl2tm2zlb6QFdPSt6zcC7e/D+zdUZdu6WfPApIo5P6637rS/eZic4xiCKcIDuUjYU+mmsc87Wqx5Q==","shasum":"13b9a41d73fcbf4fbbaeac1dd83ad17a544c75ba","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.3.5.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCyaUKRimZZn8y/zWiVBu+Ht9MWA+gVYohgIg4kfViOcAIgV1YEKt22b32ZgwvsL6TRXYVU7Tcllw1W3JQWRaSUx00="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.3.5.tgz_1506573315033_0.18060642597265542"},"directories":{}},"0.3.6":{"name":"cherow","version":"0.3.6","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.12.1","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"gitHead":"4948fab9f2083b5a499c5f06ebc50382a622e79e","_id":"cherow@0.3.6","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-K+0OyzHDnISKUlAEQta44Yz/CanV0WKL2JPuMp4m+4X5YRJ44P9jErlUMbwwnoTVm6Ug+MWaM2T8t/5Tsw0B1Q==","shasum":"ba92279eb6f72a668d53955430ff45b6cd522ddc","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.3.6.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEXMiJb95ZDWqHqzLiqkBsoBXw2CZUoAHB120FUTtdvaAiEAtOesHNCUc6BCMbJAyahGeyxjdxWXqWL6odW3b7BozKk="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.3.6.tgz_1506588921691_0.4544192645698786"},"directories":{}},"0.3.7":{"name":"cherow","version":"0.3.7","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.12.1","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"gitHead":"e8d3b0f955d630b41f984f445da89a392271b962","_id":"cherow@0.3.7","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-DN2VbDWYSg3FBF4lfxiDLR/a3fxSlQP9716/cQsEm3WUStyAl9LKbCkbCSfyWpG6NqNazWvieavCmTyZZ2zgbg==","shasum":"06b1c92786137744d603183c1314fd07b2ea81db","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.3.7.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBGUZ/U6GdxRif0rQBMZIYXJScKfSPslFR6MVHC22xZKAiBKd96ADlDZXTsT4z+CaqmFNFarVS48jWLKuwQlEtxePQ=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.3.7.tgz_1506604126088_0.003218840342015028"},"directories":{}},"0.3.8":{"name":"cherow","version":"0.3.8","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.12.1","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"gitHead":"e8d3b0f955d630b41f984f445da89a392271b962","_id":"cherow@0.3.8","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-BEQ1+xkww2y2tdOOjzqSdW+8vNhB/2BmLQcOJSzu+jETw7igEpLjV8R0pIALDseIfK1U4rYXnvq5xdFPTufALQ==","shasum":"fdd0b7f4f058f586a0064e9685381e5b10595818","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.3.8.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGq5QrQz8p64oEIDHU8aQlalE/lraktyIiT/RkUod+MHAiEAsiY8jPhANkregzS/o00UdmEchPUNicaXKkrwkbaQYd0="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.3.8.tgz_1506606202292_0.4879915288183838"},"directories":{}},"0.3.9":{"name":"cherow","version":"0.3.9","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.12.1","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"gitHead":"9161d7c24fa355778a43ad085fed55d770dbab19","_id":"cherow@0.3.9","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-C+jbOt5sMPoEqYkOXMAkML6Ino/ZwUXqLt9VfN9jpde1y1fnKRowOPyc2cu1lsJ7VE1GVu4vtdcbFbT0Ff9VEw==","shasum":"3ea967d4e07180f3a438f8b718b65b076cd0a26c","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.3.9.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFKQo2Mx33Tq8GUFuKHD8IYvtz+zUzs7Y/zmT3ORwQeeAiBXjussBqtwaJoNN/e5bPUzEm6M0Oc+XNa5yOK3jv6vjw=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.3.9.tgz_1506668273717_0.0790771662723273"},"directories":{}},"0.4.0":{"name":"cherow","version":"0.4.0","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.12.1","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"gitHead":"af7329f02d8d57ba129976b8d58e0e5894f2b0ff","_id":"cherow@0.4.0","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-eXGmpDyNFJH10vh0KlMRP2Iifakq4V672r5pJfQDh63Xdl99Y7BaYL98iBbntuKhrV7HBD2D+WCsxVeuXDfn+g==","shasum":"621cd75778b6c2a222b59aea56e50c7373922293","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.4.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD7CB08/LG3jRvDU+R1082i2+Zrk9LjNWKBfIwPb8h1AAIhANVkBxjIz6e2EOgY4l5oO8VZn2SOxhKLXAHbzlBCAz+Y"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.4.0.tgz_1506692890298_0.985270912759006"},"directories":{}},"0.4.2":{"name":"cherow","version":"0.4.2","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.12.1","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"gitHead":"8a1fa3f722f3cdca152fbf77c4df94570f41ef8a","_id":"cherow@0.4.2","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-ObB3HJb/ZtxAYbK6S7z0OE0ZPLVyJHnmbBN3AO1EPEbXlyZBJQUkon6yAnY/IP1uBjJIVbXAmDaw6Wf/ctCgkA==","shasum":"8322fe5da12b5b703075a6e2593ae9b398f111e0","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.4.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDohc5EESQLfz1avHQviJN2AtG8O3ChVYzrzf1NaVD7+AiB6RuCBzOZ5Silc+Skr1fgwGpkmCQ47Jcz2UGO/JccWHg=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.4.2.tgz_1506702908581_0.005700842011719942"},"directories":{}},"0.4.3":{"name":"cherow","version":"0.4.3","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.12.1","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"gitHead":"04de14690c9429e2cf7e94037259d4532deff3ed","_id":"cherow@0.4.3","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-WNvwOkF+2kwaYBJHiHIABZARz0LO0A6aja5T50Gajze3wkc+cXn4WxsEBZLV5UUsFWSSVqoEBhaVqpHKnLYVdw==","shasum":"a962e4af9d19a11c58a110a84b5abe72e7879850","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.4.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCnhGIuIhu5ta2eDKgO4JyO+Xw5A3OURmheLRhpecTGwwIhAIX3KRIzkYaw7MfPxtuJq32VjDlFZA/GyqfESZXmnjeV"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.4.3.tgz_1506730360292_0.06260075187310576"},"directories":{}},"0.4.4":{"name":"cherow","version":"0.4.4","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.12.1","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"gitHead":"d694e3a241104526fc56515b406b6e5a483ff492","_id":"cherow@0.4.4","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-k+4Ei0hnE1snfs5MoiNaXkVGZqLczWsBJfLCHfxhKpAcqipq13wf+xwWyFxw/9oKJ74W1+rwSGEMjxduQj2O4A==","shasum":"ba5945ff49077231e1429782ae435eae8019acf8","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.4.4.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDaKLD3IoBxfcyO94druE8lOvnuIm4R3lHd5O7xXEB4HgIhANycIlSHVdQaHChBAnFrLqS/q3+D+JVniTvFexeckjYz"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.4.4.tgz_1506737697818_0.7258937142323703"},"directories":{}},"0.4.5":{"name":"cherow","version":"0.4.5","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.12.1","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"gitHead":"f9ac5ec2d5a126ef2bc59d5ca0b3f9e50ab77ae7","_id":"cherow@0.4.5","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-2XAGI4YoEdSj8gVwrwypknqQmok85idgf1z4Z9btQJgyPDNXcXARRuSM0QzLKGtQhp73S4oy6X9qJfIpBnm5dA==","shasum":"2c03dfa572577024d085be7d3e772e2fa36e0634","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.4.5.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDCnRKfSsd6Nt8BI6hta9pJFhIqiNpFIlKZ1cLWp53rgAIgWz9ke38T/j24xkq1A1KuUmHitA8S3L3HYSSK3suOm20="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.4.5.tgz_1506774757247_0.21622180379927158"},"directories":{}},"0.4.6":{"name":"cherow","version":"0.4.6","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.12.1","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"gitHead":"77fd2cdd9f81bda8f1d343d9511a92c780d45235","_id":"cherow@0.4.6","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-LPEfEpG7tzIUa67NkkqEP2H2RjxmKjld2Fv5NFeVVgh34PG89SvOklWfclDc6RN69om+CpQoOmb2tfUFkd3ELg==","shasum":"68024ad3810c7ceffb815235a70a4b7d0eec2740","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.4.6.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCn0v82cpw1pJywFCM1c3AzL0DZIzG/oRdTk2iAMh+hqgIgS9uZ4by4WTcS3Kssx0F7ubw7QVgfJub0t6Dao3Swdpo="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.4.6.tgz_1506786823110_0.9649943406693637"},"directories":{}},"0.4.7":{"name":"cherow","version":"0.4.7","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.12.1","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"gitHead":"f19e5de1046ced42abc7a22a6c4b8a667dc2abea","_id":"cherow@0.4.7","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-/HVI5s70bkl3WojbUwutbT0TdY7binEdjOzz81mx6uj0WxaD4HML+kDkFM+oPFybB64E2sNabKi3cc0KN2dP2g==","shasum":"a57601be41b70b22068395c6ee769af39836e989","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.4.7.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHCpvQbGHFFsmRDxT3ktXyheActE0TbV6B4OeIzNthCIAiEA3qXw+EmPGfvyuuCpgLqL2jVR0c+arYanDweqIdj4aqI="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.4.7.tgz_1506829570500_0.5016122958622873"},"directories":{}},"0.4.8":{"name":"cherow","version":"0.4.8","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.12.1","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"gitHead":"1f38a94aeefe15647bb6b977a75779ca36b6347a","_id":"cherow@0.4.8","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-N/GWd+BcFbIZz8Sr1oS+g0gWyHi8HoIgzjbqVw/ZunAFvk3nKNm9SKWUAy4yNmpoG6uM4dd/uQLMljcTi7Z/sQ==","shasum":"32fbfa08c5268b712b5b9d3698837c0293947c6f","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.4.8.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDbT7rn/BP0FgN9nw0d0G027oAOO3cJK+2vWZThXcFpcQIgO54MLuURPNXuBVjYmHoScp2VlPG1vWF8MDBhGGQGhvw="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.4.8.tgz_1506844637707_0.17140845861285925"},"directories":{}},"0.4.9":{"name":"cherow","version":"0.4.9","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.12.1","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"gitHead":"64071fb4538bfe5c1b01a3a3f7eb003ca06d0603","_id":"cherow@0.4.9","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-v0vG/d6OgHOfE9kj7cD6Nc7rfze0NEOUBi2FySP6pC4brhBLp9YlBCBbrO6+R+VBw/pLtKx6MTPxGSk62yXiLg==","shasum":"07d12f3205030a82114c6d92aa8b450acda90fec","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.4.9.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDB6ocPbiHdulzMMP0TpcqotOXpEirXHpfCUZpkObCLbwIgTL3HwnJ5dfMpdw3pArtiwzZKtMrEbNDREdg7vhhZEMc="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.4.9.tgz_1506871093752_0.5207909196615219"},"directories":{}},"0.5.0":{"name":"cherow","version":"0.5.0","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.12.1","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"gitHead":"f24bfc555dfcd6c5e800a336159de67eda19fbf2","_id":"cherow@0.5.0","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-ua4wKRAV1J7yywk894uPiSwIALX0LviX3juJfvulGRqnPih0lsVvteTOuAihQ1uvk6fYGHozkSInQIjMkYjkBg==","shasum":"1564d7369474a4b266d844c884d7e3228316d925","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.5.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDLhOoutQVJT+iZQ4PHdHJTSYkemrMmUsjlxXvFCP+aOAIhANnig3AtKFnMiuGgzUXq2Tt7/neo7sOQmpyKbuDig7hm"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.5.0.tgz_1506874705581_0.6052757420111448"},"directories":{}},"0.5.1":{"name":"cherow","version":"0.5.1","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.12.1","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"gitHead":"f24bfc555dfcd6c5e800a336159de67eda19fbf2","_id":"cherow@0.5.1","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-cyAGHAokiAwNKqLhNrxL0pREzzrdboLDdNC6/o+cJdtRWfsDbt2doHV/OCWa3aki5MLyXvi08GAnCkAZMwo0jQ==","shasum":"113f87006ce7ccc7997b1a77d8ab471facd3fc4b","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.5.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDHwhz3E7nHEXNPQOamxXrNvjng4BqDIs1Ldb2r9gEDiAIhAMkngIVgzSHxKo3/9kIfHtvnKN20e24oztbajAKRsycL"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.5.1.tgz_1506900764906_0.7433964947704226"},"directories":{}},"0.5.2":{"name":"cherow","version":"0.5.2","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.12.1","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"gitHead":"4b971c6a63f3ed00bf8806d04dc2e5306b25ead6","_id":"cherow@0.5.2","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-H0z7x3RfjZlEg6SQFffqGO81dsEJk4FXdf+TU2vUeX4d4wy+5VLZWE7SIfvY9MH9rNgpTolrbzBgJtcvy4GKPQ==","shasum":"718fce407bd207527ba8d3e797b16c7277c2e56f","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.5.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA0kCNheJGO00Oc6p5B2kuRr1f7BxEgsVT0cfCguN6WBAiB2z5Cvikz87J6yE0gSjusfJXnOY8FUttJ6DIiHUfC14Q=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.5.2.tgz_1506909722542_0.8012951049022377"},"directories":{}},"0.5.3":{"name":"cherow","version":"0.5.3","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.12.1","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"gitHead":"be54298339564a1d403363048d69e538afb6e3c3","_id":"cherow@0.5.3","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-ZB/RTuGzNj/BADkl1joCDoiS57sfIx6qYhI2vyaWxftTT1tvyt1QkYJjP7RacPINuJpQ0ID4jAliXIlRJk+sPw==","shasum":"2fe95a61ad84e481148adba56ae05763482183b7","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.5.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCcJJ4QqL0pCBrT0NEuuEfn93cQ51nFzBFzNftW9GboHAIhAK34975KJeIWnDHlwsIv++7FVp9jYY0lK+AkjCLr0oz9"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.5.3.tgz_1507004837744_0.3461914809886366"},"directories":{}},"0.5.4":{"name":"cherow","version":"0.5.4","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.12.1","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"gitHead":"be54298339564a1d403363048d69e538afb6e3c3","_id":"cherow@0.5.4","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-ZcCU8uXZ90r43N9DQs1+KsaShMUMkpKvwV4lpmkcBBix0i6pSN/r34IdfALUkuVNJ3HFNQKaHmW3hmZd1HgNSA==","shasum":"3734dcad421405a559b0331dd11c393bd3554f32","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.5.4.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBUK3uxtUASwEvb4nscG7s7YOsXRjvXnla1Azm1ix9etAiEAuP2idFl7wRjqypjKl4zbEpJBeIbkkd3GEkssu9YyyAQ="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.5.4.tgz_1507020552374_0.14769103471189737"},"directories":{}},"0.5.5":{"name":"cherow","version":"0.5.5","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.12.1","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"gitHead":"ddb05ed5b3d113e27d8230e99c6551fa7630a583","_id":"cherow@0.5.5","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-koQ/ulK5aul0MCytxnsZ0G/U9RqCAoYO89peFBZ2dPYiMYufiSjJ2GuxgqecWUWpeGXe1sZtmRX3Oi6ujETIQw==","shasum":"ce176ebd9bb3250bd3c5da7b549ca4056dfe5452","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.5.5.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCi37ru9cMyUnXK8J7etxrnVBkjmCo4khwj+AGdSgzdRgIhAJOKExkm4vijyjb69bw2TkGiuTy0MOpmcqvvPMkLqOsZ"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.5.5.tgz_1507029797750_0.7999282616656274"},"directories":{}},"0.5.6":{"name":"cherow","version":"0.5.6","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.28","chai":"^4.1.2","codecov":"^2.3.0","coveralls":"^2.13.1","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^3.5.3","npm-check-updates":"2.12.1","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"0.15.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"gitHead":"503bc942fa230797ba0d3faaebbb62ab18435765","_id":"cherow@0.5.6","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-U7uCxZLnD6BUTnmy9cNAjKh202m1jb20E3i9U4j2kMnm4iVPDgKNJ4SjPLW++Qx4IHORHycpfuDM6luD0PWkJw==","shasum":"df4cc09f748736319e101982a09147b4469c6e1b","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.5.6.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDgDkAJMiPtB6yXiex4A/q3/sbkdc0ih9yYJmG0EKKWyAIgLCElauR1AWbOstzm8dbqHjJj81hjHHmYIuGvuembTXg="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.5.6.tgz_1507036500953_0.6646959269419312"},"directories":{}},"0.5.7":{"name":"cherow","version":"0.5.7","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.32","chai":"^4.1.2","coveralls":"^3.0.0","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^4.0.0","npm-check-updates":"2.13.0","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"gitHead":"503bc942fa230797ba0d3faaebbb62ab18435765","_id":"cherow@0.5.7","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-E66IgfX5TD7zxGVk2WBVRgBRtcpL155mO5y6w9mZ9LHAyNw0UX/KVLYASWDHIFsbHAK55NQxRYCTE5b8iNxVrg==","shasum":"4edb6e486594982b58ea9b110655e5d9ef6539c9","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.5.7.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCv/gccVoCdk3vD9Rd0mupX3AwyD3OA0x6NlXqJtlIRLwIhAN7/+seUue/uUeRVcgM5yne7419BzPeH7KmrZKSsUrJX"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.5.7.tgz_1507044349953_0.9165650452487171"},"directories":{}},"0.5.8":{"name":"cherow","version":"0.5.8","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"rollup -c rollup.config.js","minify":"rollup -c rollup.config.min.js","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && node --harmony ./node_modules/istanbul/lib/cli.js cover --root ./build/src --report lcov --report text ./node_modules/mocha/bin/_mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.32","chai":"^4.1.2","coveralls":"^3.0.0","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^4.0.0","npm-check-updates":"2.13.0","npm-run-all":"^4.1.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"gitHead":"25d295debbd637506e1a18d466107389b097933a","_id":"cherow@0.5.8","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-NMFtTqNZwgfYwkVDA1BjAOd8AGynnAcvYmf+9SL8+kvZhOjM5doUhQ06qO0cL6I8HBtQtNANDJ1GOPqArNHNNg==","shasum":"d762f8da9dc60fa62389cb8ea2dd1201021a8aee","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.5.8.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDfUckHFN3bx6rgL5/jAVclPmUX0GRmhi6pNJIVAq+FrAIgDPdxSs+85TdjyyTa7W+VZVMuI0n1PAvlhpU20EW+TpE="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.5.8.tgz_1507082315754_0.3392117840703577"},"directories":{}},"0.6.0":{"name":"cherow","version":"0.6.0","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.34","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^4.0.1","npm-check-updates":"2.13.0","npm-run-all":"^4.1.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"6b1f0fc4ee176aba7651a4a017746258a4b8127c","_id":"cherow@0.6.0","_npmVersion":"5.3.0","_nodeVersion":"8.6.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-sWIQp6vqe/7WG+goBloIlRlXa7cPcs3E2TWTutDNMXWmz7a1KWafgosF5asp5PzG7N7mWDa8M84QREcZvPDAEQ==","shasum":"09f9b75b57822d346b92a8dc07373069cc3f8ecc","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.6.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCWXGvLGaup/uLix/mx3KbI8lGW0VPFfZNKLUSeY1p6yAIgHq8/QvSUBI3P2jWbjEz+bjFwjOJTN515lEVM6E+iSrM="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.6.0.tgz_1507783032432_0.7457956997677684"},"directories":{}},"0.6.1":{"name":"cherow","version":"0.6.1","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.32","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^4.0.0","npm-check-updates":"2.13.0","npm-run-all":"^4.1.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"45c0a531a99b87b1fdbb8f15ef324621a7005423","_id":"cherow@0.6.1","_npmVersion":"5.3.0","_nodeVersion":"8.6.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-RA/U4xeNxd/Qapw9FC2z7DvlFCCPGBbwS+ff+N3ANT2NtQMD5GK1easONuF6bx5i4UsRV3rweMk5qXrhXJmypw==","shasum":"0e2fcdfd43976ec9e0132907972c0cc72deb21b1","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.6.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDa9QMh1vezQRSi7KMTSSoXuuy1DSx9AcIDX+Bz4QmnsgIhAN0PcC4keuuCB9IZfgRWdOn2ThgWsziGmGqOMmBbKD58"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.6.1.tgz_1507801841986_0.7334080941509455"},"directories":{}},"0.6.2":{"name":"cherow","version":"0.6.2","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.32","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^4.0.0","npm-check-updates":"2.13.0","npm-run-all":"^4.1.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"45c0a531a99b87b1fdbb8f15ef324621a7005423","_id":"cherow@0.6.2","_npmVersion":"5.3.0","_nodeVersion":"8.6.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-BZt9NhgOdvWhybC9pbxtcmDou6ejxytNkSqkjzXfLCWRVvkfmEbV6HY5gh8vvhhzEZI2ZaQki+eN543871Z3KQ==","shasum":"9398f74d33888a2e070f57caa33bcb047449bafa","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.6.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDm66gD4aHCj98EBh25o/IZQpFTNI1B91+F0KaRpVSBagIgeotAw25SILnZiT8pQnN3PYgPyX3cqlG1Z0QIDmPDevs="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.6.2.tgz_1507804070773_0.15794519474729896"},"directories":{}},"0.6.3":{"name":"cherow","version":"0.6.3","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.32","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^4.0.0","npm-check-updates":"2.13.0","npm-run-all":"^4.1.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"45c0a531a99b87b1fdbb8f15ef324621a7005423","_id":"cherow@0.6.3","_npmVersion":"5.3.0","_nodeVersion":"8.6.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-hEXMtSGYA/XlUETlt0QhJ3vPV4clzCOW1ZFJv2r7BtD47paUhwOjg2h49+I2O2LuqaxZjHD7oEQ0K/3Nh6ImhA==","shasum":"917fb270e6cfd73604baf5fed9ddf767c3637199","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.6.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBbfGT5PjNRfUq8s1wtarLmq0rm3JEPG2ADAoMWk06lsAiAIsk52hdXEdodK7ASx/Sq0nJTSgeAgN7TnGEjiSNbLZQ=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.6.3.tgz_1507805121698_0.7754537402652204"},"directories":{}},"0.6.4":{"name":"cherow","version":"0.6.4","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.32","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^4.0.0","npm-check-updates":"2.13.0","npm-run-all":"^4.1.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"ca2242dc0bad6a44dd48f6db5af940017d5ab890","_id":"cherow@0.6.4","_npmVersion":"5.3.0","_nodeVersion":"8.6.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-8HbGog8DeJC/wj9x3Gh9Cj8rykRgyK5kh1UVVKUc5poTMau+gmKsB8kjk7h717khQiTYK566RvkjOeIOE44weQ==","shasum":"75e740d8cb28f9c04e4bd26a47ff9240a35101d0","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.6.4.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAOumEJAJAiHfbjtppQDgnfpKdFoPdvR+fcsNdukncAyAiEA/qs2BjLBI9dsqEkPmVFB9gEjW/PEDgGw42ZH1Y29T5k="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.6.4.tgz_1507811356750_0.01467984146438539"},"directories":{}},"0.6.5":{"name":"cherow","version":"0.6.5","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.32","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^4.0.0","npm-check-updates":"2.13.0","npm-run-all":"^4.1.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"ca2242dc0bad6a44dd48f6db5af940017d5ab890","_id":"cherow@0.6.5","_npmVersion":"5.3.0","_nodeVersion":"8.6.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-55zNa+aRqn1mHUV8y0aln386P7H1bqRTQlGZtpzhV77FcTqh3rqWuG8PPNSWQicO0w39S68AEpKoRo2OfSo06g==","shasum":"d2b697af7c54bd1107832636e27c01d97d6a59f7","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.6.5.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC3DkJaZpJnjo7gtm3avXpwSr+d9gcnewGoIMSGy7ZKXwIhAPNQwnCoTTSGtk3OPycSxREa7pwXCoMJmrhRkYRVp5r+"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.6.5.tgz_1507812830027_0.1874897361267358"},"directories":{}},"0.6.6":{"name":"cherow","version":"0.6.6","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.32","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^4.0.0","npm-check-updates":"2.13.0","npm-run-all":"^4.1.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"8bc165e781379f41a1a5d1c124287dcb963cabb5","_id":"cherow@0.6.6","_npmVersion":"5.3.0","_nodeVersion":"8.6.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-OfZtorALMjI7DrHMJPuf0tYUNoMPflAFu8JK2A20E8XZTX/L6Gu7KLMFBxKuzbAS4K4hOPhZegHVlJ/OMfnkug==","shasum":"86355300545f237bb239aa65e6285656123d4eb8","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.6.6.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEKWJBCO/oFnTYxh6j9cSlWUfWk7Zq4yXzjD0BCABOH1AiEAjiwnUadQpFlvW4dqN9+RZLw9d2TzoTD5bhSa2lSpERQ="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.6.6.tgz_1507819381735_0.7050568098202348"},"directories":{}},"0.6.7":{"name":"cherow","version":"0.6.7","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.32","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^4.0.0","npm-check-updates":"2.13.0","npm-run-all":"^4.1.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"47bebf378a21610775b1d8e7f52917f9423f7651","_id":"cherow@0.6.7","_npmVersion":"5.3.0","_nodeVersion":"8.6.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-pFQ82ejPhI8Scb4lj1GQF4K7VwvEEMFh45KjgoFLAVuEKoMnag/1ERs36hMmU2FDXWUdOy8EdrMAnOWyKeTKnA==","shasum":"144190522073b79f456832ec2f4866be23e70b4b","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.6.7.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDpRoiKPHDg8T7Ic4BPHlPR7nJfv/T6ePgBOrNyrz0NBgIhALhJZhmrda4NHE5ZsQhlmBAP9LjEMbLguyDOLZwch8aJ"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.6.7.tgz_1507850326216_0.2488450699020177"},"directories":{}},"0.6.8":{"name":"cherow","version":"0.6.8","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.32","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^4.0.0","npm-check-updates":"2.13.0","npm-run-all":"^4.1.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"6b217ed50ebde762ee2963ae2a953a6cf5c27ae7","_id":"cherow@0.6.8","_npmVersion":"5.3.0","_nodeVersion":"8.6.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-TTbNKqdjacpmCBUjs+IMZmKX5odcURKy0UQKlGdw7QnqXFwWyvjEhewws0WI40U0JHqU0AJGxUzTA0SfhI0c2g==","shasum":"e68100ef269ed2d0dd89a01cd0d1ca327b8ebf9a","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.6.8.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCyJaff5LPni/+6hi3HjpKmgANRoJM1D+EDvGecRITSrAIhANSHEw8UzUDy4dQWV972bXYdiINFHviBeqvNcyY0iOBz"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.6.8.tgz_1507857095510_0.16892977384850383"},"directories":{}},"0.6.9":{"name":"cherow","version":"0.6.9","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.32","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^4.0.0","npm-check-updates":"2.13.0","npm-run-all":"^4.1.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"ade90a4f315ad1ce42cd33b7e1e9df9a722af3f4","_id":"cherow@0.6.9","_npmVersion":"5.3.0","_nodeVersion":"8.6.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-WTxKXKADUSbhqFxmnmvtufBFP5pzQZKQCz2/n0m2evqGdbIb/YlZdIALu8dUo+kUeXBBSxqn2JQHpMghlhYiUw==","shasum":"02916f9ba477bdfbe5e1ee349e6c94366df60b8b","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.6.9.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD3GzaO88Bvn5BH1zBZK848qhoRAbZc2bklgofCUspdQQIhAMW+BftzGpTG3EImH7SRmfHT9w9mo7ohtOSWTUSRO2lp"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.6.9.tgz_1507859450432_0.23980847164057195"},"directories":{}},"0.6.10":{"name":"cherow","version":"0.6.10","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.32","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^4.0.0","npm-check-updates":"2.13.0","npm-run-all":"^4.1.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"94040bfcf5eddfa333d56012e8876edb5aab3626","_id":"cherow@0.6.10","_npmVersion":"5.3.0","_nodeVersion":"8.6.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-gNvqlJ0hKt7R/Uef55a7C+pmTM9oWcnm+5OvNPZNwXpqFR/8t3m0iQ14cL4Q6lhemRDfhR7mmlW+4FmtgECAIQ==","shasum":"a0f4a714697457f6f9a20cebe418bbc7eeaf2e8b","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.6.10.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICZS7YB8ss//f0XbDB2gZGmOwnNPvEYNpMLmbN8wQfPyAiAnEfpX9m4GpLZbRFGYMdhOCJNhHHO4GrGI2IW66MR4Hw=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.6.10.tgz_1507864291493_0.8398913266137242"},"directories":{}},"0.6.11":{"name":"cherow","version":"0.6.11","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.32","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^4.0.0","npm-check-updates":"2.13.0","npm-run-all":"^4.1.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"94040bfcf5eddfa333d56012e8876edb5aab3626","_id":"cherow@0.6.11","_npmVersion":"5.3.0","_nodeVersion":"8.6.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-fXP8PqiuWlCnu1gnrSilByWEGFbVAXi0NTBUNIG/semlvM9+hlgW5OWQ4iQW4/97A2V+iZPhvYx7yqcdvbhTaA==","shasum":"8c2a9be5ad8fa5fe60b34f47a178f5f4a12a2e6f","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.6.11.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF/TD5WnSDzT6J1umwBadHFMAUchidE+twIVazenlnkuAiAkj3Wp5BKZD35+7roy0AL60g3dCG+AIbrU6eLC/vCD6w=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.6.11.tgz_1507898089145_0.030955246882513165"},"directories":{}},"0.7.0":{"name":"cherow","version":"0.7.0","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.32","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^4.0.0","npm-check-updates":"2.13.0","npm-run-all":"^4.1.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"105bb3757251bea466a9e1c3182c2ef7b5c71676","_id":"cherow@0.7.0","_npmVersion":"5.3.0","_nodeVersion":"8.6.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-hWwf3thWbhXjQLu9Dl6wl+zAgWpJrDg8x/dsiHi/kOvJizU6DLZ01xyBvOrWXk2iQF8cmWYIGISqqJZU1DYD/Q==","shasum":"9ec979bda42f3aa6a0a9b36b3c5a96e4c035f0d9","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.7.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH4QWwwFKCAc7gIBVNnlulgLUC2L2sppz6UK5X/3lSAKAiBmGeZRh7S1uj3uMfHCB13Bc81T0ITDnVCy0/+gb8p3xg=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.7.0.tgz_1507898715357_0.12584195006638765"},"directories":{}},"0.7.1":{"name":"cherow","version":"0.7.1","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.32","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^4.0.0","npm-check-updates":"2.13.0","npm-run-all":"^4.1.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"d1634aaca586190b8ac4f617e4d230ce99357df3","_id":"cherow@0.7.1","_npmVersion":"5.3.0","_nodeVersion":"8.6.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-LT1l3J7ZRzcke+UO7dhm7fmiipP8KoxYJR67X30vSMlEV9TAE1GgEAUux69KO4bDyCnrEjTa3gJE6QIkQ/IhaA==","shasum":"f6fc74d469b0153b9eba944b6ec51723f7791514","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.7.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCzIxiXTyWUyXzHpKHxRxtwhNXXdHr8+Hfj02OG/OTILQIhAIb0CDmGk8VLVVx682FqfZI2S4vN9axQmYJBUF1FDv9s"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.7.1.tgz_1507906208676_0.4488969778176397"},"directories":{}},"0.7.2":{"name":"cherow","version":"0.7.2","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.32","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^4.0.0","npm-check-updates":"2.13.0","npm-run-all":"^4.1.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"11aa203d77ed295671aa575afc56c6a9704a15f9","_id":"cherow@0.7.2","_npmVersion":"5.3.0","_nodeVersion":"8.6.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-NamvywWNXX8vsKUgGxnuZRNPcg+arqamU/jW+SJ+EHqu51XZRZMN/cET9R5Rxinap50YPRnx7GzesJHznLuLHg==","shasum":"2542a8333b8cc65070797dd44d8384400737ac7c","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.7.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH47bxbKPGegT+Z9y6E2xh3nByIUhGnIDOlq0kGXA9LYAiAF14a236pTbB5HfdHRjM6ANbxLhkA1oMHA5rJQ+pZ44A=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.7.2.tgz_1507912334587_0.6890593518037349"},"directories":{}},"0.7.3":{"name":"cherow","version":"0.7.3","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.32","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^4.0.0","npm-check-updates":"2.13.0","npm-run-all":"^4.1.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"cadde0caabc1932a4e962c4077e61467637dd00d","_id":"cherow@0.7.3","_npmVersion":"5.3.0","_nodeVersion":"8.6.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-3bfpVw33jS5cx2htq/hqve4CcMByP4q4PubNCGpuaM/esyCpE4dTlAi5XoPuSyFHpoJX/TKWGCoZsjGvMTrEhg==","shasum":"1bf711c0b54e00bd440d4ce071f6ef2a7c7bca26","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.7.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD2o9mCCFVG/1+z9d0DNc2WV8gS6VswxArI3CIJUP5B0AIgLbYXKa2wWiBrVfM18PQVcq/+oyRGsbCJzHA09gI/nl8="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.7.3.tgz_1507943227447_0.9822423369623721"},"directories":{}},"0.7.4":{"name":"cherow","version":"0.7.4","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.32","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^4.0.0","npm-check-updates":"2.13.0","npm-run-all":"^4.1.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"cadde0caabc1932a4e962c4077e61467637dd00d","_id":"cherow@0.7.4","_npmVersion":"5.3.0","_nodeVersion":"8.6.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-dKA2MshJW3x23GV98RJ5I416zPUEaSBRlX2Gijm7RfNjYP2izrcyJJHEJc3crYMOw+mebir9LIslwQGxUaDxwg==","shasum":"10efb2b1fcc286c9e7c8f3ffa1d8a7d0236934d4","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.7.4.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCAgQaNVSreZJ2fweA9SH2CheUkNi56TcOQd2gojTORBQIgXk+FeI5pkIJEpA1jG839swGI3OHn7w+Y4LPvcLp91to="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.7.4.tgz_1507943576402_0.5123669335152954"},"directories":{}},"0.7.5":{"name":"cherow","version":"0.7.5","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.32","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^4.0.0","npm-check-updates":"2.13.0","npm-run-all":"^4.1.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"193a945c1fb6b1e6531c6fb266a81c0ad19421d4","_id":"cherow@0.7.5","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-mA2TYTefu+sJIwWydVwbHYGKRW8hEGmPY2SHU7OBBopFXwwXMVgPDio9BjahIG9iEsN1ry8UxxJX4jeeC65EtA==","shasum":"e75ba73ca89d8e579895aa444bce1c9994664c34","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.7.5.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDppLi9xqNYKF5wnp9LZCjN6Kb//miwo8Zyagy4hd8KbwIhAJJq7iClX7IQWktp55eHDW33G25y+VRXOzlXxTjZk1gP"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.7.5.tgz_1507957678092_0.4343376588076353"},"directories":{}},"0.7.6":{"name":"cherow","version":"0.7.6","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.32","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^4.0.0","npm-check-updates":"2.13.0","npm-run-all":"^4.1.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"21bab5fb0d0009c39380290ee8ca3af6e8f9132b","_id":"cherow@0.7.6","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-pmBr/smpnzSDW4hJMM5naDaKbhSN59AVPi8DDU55EZ3cQI2G2WHmfrJ5EhOIxi89E8a+Zp22Tk57CQwlGaNepQ==","shasum":"52d23d045d91d9446a5e7a6967d5f69b61f2aa62","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.7.6.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDIsEWFkMw5W2zXHZq2EHDGinZuDoHrLqFKej+f53YgBAiEA47kRdorg3grlWYOnzs8O17cwMOht8rSyaA+hi3pctOw="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.7.6.tgz_1507963350337_0.3884189056698233"},"directories":{}},"0.7.7":{"name":"cherow","version":"0.7.7","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.32","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^4.0.0","npm-check-updates":"2.13.0","npm-run-all":"^4.1.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"21bab5fb0d0009c39380290ee8ca3af6e8f9132b","_id":"cherow@0.7.7","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-aPzAy0CAv4rydkFQY9Z3SK4zKrtlFJ+uqk/MSoTIa/dN7Yu6Cpc/hae1+Wz3LIQuG9LKKkpYAdIBTrmmyb3M/g==","shasum":"16c0d4b183fd72ed544d7f9dbe0541994f81d1fc","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.7.7.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDNhe8pOGh/ChjpFIZHkduIN7MQg/8EGkBuEQliSu1pjAiAdQ6YSYceHvwG0i25MwlbmXQcMPRecj02jCj571Xz9eQ=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.7.7.tgz_1507988467479_0.18143720598891377"},"directories":{}},"0.7.8":{"name":"cherow","version":"0.7.8","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.32","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^4.0.0","npm-check-updates":"2.13.0","npm-run-all":"^4.1.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"10385227d8c616b89e03aceefb8c9f7f415f3a4c","_id":"cherow@0.7.8","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-GG+XPrkxkR55IoNNsRm3ir4qVcvUrr19uDElm/pVPKNri1RumD4mUkINsRcc0A4Q9u724DYnStGfJkX+fyIx+A==","shasum":"df24b1ab1a47052a8036235ca6146fad875d80e4","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.7.8.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFffVuTupjFIKnOzKuQNjiR29MRUwfgv4SSy1VojdfgkAiEApsb09tXBL7pQGFM/cnR5iwfhBncTOjua6rLMV2Ng5e8="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.7.8.tgz_1507996858821_0.7174486501608044"},"directories":{}},"0.7.9":{"name":"cherow","version":"0.7.9","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.32","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^4.0.0","npm-check-updates":"2.13.0","npm-run-all":"^4.1.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"36f7ba6d1e6abe2ed4ff66dd9cab9e2c8db33080","_id":"cherow@0.7.9","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-ldAcylETbID4U0EjRFbO1y980JlC/8JGFyLyMiWVRGGikJyqKToqHDF5BR7FiuiT+Xj8ZaifrR/O6wmWqSFB8w==","shasum":"18d56eeb841096981ef6bfb69fcbf610ffb82d83","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.7.9.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD0VX8flJbqpC7aZWFNo5q61bQfSyq4G7405nDX1hD5PwIhAMSxYnGcIRi++zG82IaAZyapvhkL/mdarYAERiZte0cN"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.7.9.tgz_1508055211873_0.8469671269413084"},"directories":{}},"0.8.0":{"name":"cherow","version":"0.8.0","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.32","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^4.0.0","npm-check-updates":"2.13.0","npm-run-all":"^4.1.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"36f7ba6d1e6abe2ed4ff66dd9cab9e2c8db33080","_id":"cherow@0.8.0","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-5WZIe+ZEC7woOlKorzxNGcSdDKZnoyo6YB2XDwofn3BAEWQ+iPHHIPAwZ6cO3IfMSw+svzXqDpXnR9rdO8eCMQ==","shasum":"78fbbf6cda1f9d0fbbb976cd494ea2c6ca505ca3","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.8.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHciBGQsSF1/tasLR1KI8pwc75LBe6zqCAF2mwu4Fdh+AiEA4Epz7/0sk9wkVkzvgt6WTBaO4h7pEKMxmaOpzfqVDSs="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.8.0.tgz_1508082451545_0.003870042972266674"},"directories":{}},"0.8.1":{"name":"cherow","version":"0.8.1","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.32","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^4.0.0","npm-check-updates":"2.13.0","npm-run-all":"^4.1.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"ec4baad02131c98d8a916af1b004413b2477ef00","_id":"cherow@0.8.1","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-oQxzM9xVpPoa6Q4HLVbD9oASPMVoRgdflByTUj53wKIz8YRoJblH9ZjO8kbGayJYly+XRmVQKpJ8W2FV+qwx9g==","shasum":"2907a2ae0189a0abefcba1304a97d1a84c0e4909","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.8.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIChOV/jq0KWzY9dt4A33RcK58qtrTmve2pX0nHdxGSP+AiB2Njs8zN3E22LDEsj2PrzodRuM9QsYmFBy2CgbUhDZHQ=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.8.1.tgz_1508150019203_0.004622500389814377"},"directories":{}},"0.8.2":{"name":"cherow","version":"0.8.2","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.32","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^4.0.0","npm-check-updates":"2.13.0","npm-run-all":"^4.1.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"65020fdc814f12fac55c06cb7af43616d23c1056","_id":"cherow@0.8.2","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-kApGgzRi6L/tYjP5IOXudN6B5DydGafIZMFj+t5Rcc5f8qf/WiRH5iFjR/YsAr5uAsDGfL7GnIX50neEBAST5Q==","shasum":"b3b2d98ec951a5b8dacd5c6bfb8ef1af6354fbea","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.8.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC3ZillphatwqYu/2aY4w4/Or/Slvi3Wh8Q8XoM0fHT2QIgF+nL+SAKWvBPK33H2QDnX3GcTgaehg+3v796hIo7puE="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.8.2.tgz_1508158127716_0.4439627663232386"},"directories":{}},"0.8.3":{"name":"cherow","version":"0.8.3","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.32","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^4.0.0","npm-check-updates":"2.13.0","npm-run-all":"^4.1.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"d13afed6a6b0b3f1340293c47d3d312c08a231bb","_id":"cherow@0.8.3","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-rsId9kxHXOGtZ/Pryy2MesEL6XrLNXjUUrOpZg3NqtZgDsfg0SfIZhBLw/yKIzhYPkic77Q0i0hc1k72JuUIhg==","shasum":"b38e4c4d2df208347b28392ce431a188b449199f","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.8.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCydYFkPrIqNOmDZr0nIkCZCSsdRqOuby8hDbjBf5N9mgIgTHdWUZrQrPFpUEBn+EcBU6+JwGXkAki8Nka44mQDS0U="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.8.3.tgz_1508164039991_0.23910624370910227"},"directories":{}},"0.8.4":{"name":"cherow","version":"0.8.4","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.32","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^4.0.0","npm-check-updates":"2.13.0","npm-run-all":"^4.1.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"d13afed6a6b0b3f1340293c47d3d312c08a231bb","_id":"cherow@0.8.4","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-2HbR6fkfcmeu14VlaZrL7TjzRiINNQUXcO86KETJso34K0s05zW8YcwC9b0JTveRLh8BLlJPDjnSjHJJLkceDQ==","shasum":"e4552a589671fadc8bb8313d2067ce547968b07f","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.8.4.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA10CPEQ06Hpj6H+R1ekW8r4pEbdqFp3ZoUslacMdVGtAiEAsFZTdqiyLgWboYuuefApM88KepU0etEbbtQmKy+CEjU="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.8.4.tgz_1508202004314_0.9728384006302804"},"directories":{}},"0.8.5":{"name":"cherow","version":"0.8.5","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.32","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^4.0.0","npm-check-updates":"2.13.0","npm-run-all":"^4.1.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"d13afed6a6b0b3f1340293c47d3d312c08a231bb","_id":"cherow@0.8.5","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-f0vvgnQikM5itq0+PX6nTS7G9wSoq2a8UOVBCEzuPnu1vvhB29pvNX0v0/unY7ohe2YvqqnjqKCcvN3U2AGRTg==","shasum":"d623b22ffe5ad6f2e2f44a8707ef82a9fe18c9b5","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.8.5.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD7gcs4sRjEcKxRoMAfavLp+/166WkZZFW4k/fVz/t3vgIhALUJc+4YLyIRkEG2JJFwuQASsjxxYx1GldQmuN1bPxDt"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.8.5.tgz_1508207997628_0.9112033168785274"},"directories":{}},"0.8.6":{"name":"cherow","version":"0.8.6","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.32","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^4.0.0","npm-check-updates":"2.13.0","npm-run-all":"^4.1.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"59f58da49c12e85e4f12c8cfa801321fbd1d67b1","_id":"cherow@0.8.6","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-fQxuzdV3kqMJUSU5uld813ovINRRPUoPwa0jdBqysEMxPU39nI4jWw7jfixk7SOMHyJEr5CBxtCGx5vPacDj4w==","shasum":"20c69e6c0b9ab9b6ec798badaf60797de9d6fe74","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.8.6.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGafMNKwkKsTR1ByZoZmb4WRGlN2NdZxWmkqrIBtQ8HyAiBWuWgdfYU/Kp4z/7uzvEPbPdg8WFNKwhBMAaBl4dONrA=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.8.6.tgz_1508233520337_0.3724175982642919"},"directories":{}},"0.8.7":{"name":"cherow","version":"0.8.7","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.32","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^4.0.0","npm-check-updates":"2.13.0","npm-run-all":"^4.1.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"6efb1be71ced4847ef22242968e5a6670d2d1f99","_id":"cherow@0.8.7","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-M6q34A01k1O1Ztx6yOBNsIpzBP0pFHtAd3TosEeS5+htXztqj7DU4GTZAUwyYyzhBSZT4O2ZEb165KV4Kwe9Ig==","shasum":"ee18caba3acd9a013c4f3b06b73176deae8c648a","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.8.7.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDBEZL5hTLdlyIoQF21SckxXG69hOZJ3/m2RLBu0LGm8QIhAO14LYIdIbTWC4xj8dOHhoFQa72JfgXNGBwxFHESs2bP"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.8.7.tgz_1508250177376_0.9081424090545624"},"directories":{}},"0.8.8":{"name":"cherow","version":"0.8.8","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.32","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^4.0.0","npm-check-updates":"2.13.0","npm-run-all":"^4.1.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"6efb1be71ced4847ef22242968e5a6670d2d1f99","_id":"cherow@0.8.8","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-UIV1wWZtXReAZb+nNCoDSm+6gUb3VsMoAWC/MVlCLR98+sMVXkD6nkPHnp2ADGDTUaCTqmbE8+U5frSKzNl+9g==","shasum":"a908d707c7ae42c81639e0555b3fef6420377b40","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.8.8.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC4dluCEQJ6eDUwQ396n6+oI58kPrthQ4erZeximQ2q9AiEAgRzeRL1Vp88hX63tF9k8HdcdxA6m55K2uScf+qt/JpM="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.8.8.tgz_1508280572149_0.30369081790558994"},"directories":{}},"0.8.9":{"name":"cherow","version":"0.8.9","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.32","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^4.0.0","npm-check-updates":"2.13.0","npm-run-all":"^4.1.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"9705f886ff4b01beba5d6bcdc5eb9d6288fbf268","_id":"cherow@0.8.9","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-zJ1kIH3GOHAGiizCZkhlCG53+Gf5pwicS+JEdPmnH8kCcz5vSTJf7PBVLssqqB29vo3E+rCsKw9GsW0PCmNHyQ==","shasum":"a4f33ae21cfcd252ebbbd0cdc85c89ef9f8b22b9","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.8.9.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDQNLD/v7BfPjQBGvB4235wHqCMR92d0xlsGfsyBqPiMAiAvmrnW6VCSTBIoTCmrrOzq73ju8V2P9YTFlxe/y5OJwg=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.8.9.tgz_1508285314400_0.12778137112036347"},"directories":{}},"0.8.12":{"name":"cherow","version":"0.8.12","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.32","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^4.0.0","npm-check-updates":"2.13.0","npm-run-all":"^4.1.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"94c07bd9ce06e0345c3f37a43cb8523888c63c68","_id":"cherow@0.8.12","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-nipbIzsLhYD1oPNQr4dJfU3vJLu1HFfdFGg9VUgMfbJydeAZIOGhybZ/4MI9L15J8asSQYmKlvpvaS7bpTCZwA==","shasum":"2b89e920244a73593b54a00061106d4a07c24925","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.8.12.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBr1jJGoiWlQfPIH5k46m2ytcSPwWuAK8xV+r0oT5ji7AiAnDHC0v4/a/ToDKVdmnUE8QnI4k1Pk2LpTlHVOFUOdhQ=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.8.12.tgz_1508293497737_0.7787848697043955"},"directories":{}},"0.9.0":{"name":"cherow","version":"0.9.0","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.32","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^4.0.0","npm-check-updates":"2.13.0","npm-run-all":"^4.1.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"580756eac30ce3b9d6583d5b994c04d601eda27f","_id":"cherow@0.9.0","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-VfSINxEfU2FfspgUNfUKalEQCyA+C036wmxAoxCWpdOJSVrNLOmmaRc94p3GE4U4/duK2Xm139uttiXWi/ewhQ==","shasum":"d4c5d3c22da1c1f213336022a8a5e79ab34b0b7f","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.9.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQChpywscUFFPZESinB9adb5w0zj9nYSxTSk3nN4GW9vygIgWUmB9g32c6MugPpTM6n4W4u/0wk9Xz5WJ3uU3mgvqyY="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.9.0.tgz_1508300569563_0.6725446158088744"},"directories":{}},"0.9.1":{"name":"cherow","version":"0.9.1","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.32","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^4.0.0","npm-check-updates":"2.13.0","npm-run-all":"^4.1.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"3084afb0e19d0e763cc7c4abddb2ab2f07269a52","_id":"cherow@0.9.1","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-WW798TfTvmGLBvU+4q4zKwXqtO2TbX/xD+0/nEE0bjX4cLO/J4qy0P+4zuc3uY3c1vLQQHzhbsLcP5xXAPScBg==","shasum":"f3118e8c6a6595d8473108009921b19e220ecd44","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.9.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIATWT1/IeBTiwLi2fmcPLFt2/vFczg6znU7V2bAGBTanAiEAurZGiZ7MSXiFyV28YH2ynOmv6agQgkO7Jnat9GIMcWw="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.9.1.tgz_1508311411017_0.31654828507453203"},"directories":{}},"0.9.2":{"name":"cherow","version":"0.9.2","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.32","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^4.0.0","npm-check-updates":"2.13.0","npm-run-all":"^4.1.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"aafd0fc0160100230f8381eaff1e374299260d93","_id":"cherow@0.9.2","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-8tQXesWvKONJ33jaKa8eXhHND7on1/rDmlXWi4CYKpwWHzvHwDw9Z9I3IpQa2uRBtCeGDQLPji5E+IHl6otyYQ==","shasum":"31cd779bfe686690e2f158d843a38fcbe2c0199a","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.9.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD8OAfUlGm6d62I1i2yNhov3Def9f6GfIGdEt5V0HPYyQIgTAh2ApkhaVdGvFNI+81zcWmheH/yD67zKQ6bV9Y/C5s="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.9.2.tgz_1508330205393_0.40709319873712957"},"directories":{}},"0.9.3":{"name":"cherow","version":"0.9.3","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.32","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^4.0.0","npm-check-updates":"2.13.0","npm-run-all":"^4.1.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"1eab7ec10cb0f9d17bf7c8604cf4b59f93d54ac1","_id":"cherow@0.9.3","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-eY7K/1P7t0fkvs780TWHLF4Nq3J7i6Uo3Zp+y4sAVsWma5VqYG1HonhvJxIHMkIhu+pER0UQytm5NmjghPkFag==","shasum":"2241cf4b06831735fbb9919b541dc61af5e0356a","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.9.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCldEMh/B37e8+8F+yw/3bpBecycv+4tfF9fgoMcEb0bgIgDnHeG/bES6bJRdWDNJREOxhvIPCok//gbQMFYqCffKI="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.9.3.tgz_1508330901297_0.8278875001706183"},"directories":{}},"0.9.4":{"name":"cherow","version":"0.9.4","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.32","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^4.0.0","npm-check-updates":"2.13.0","npm-run-all":"^4.1.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"1eab7ec10cb0f9d17bf7c8604cf4b59f93d54ac1","_id":"cherow@0.9.4","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-9ck2OTOhr7SB9G3BekEsJw+MXLx08sj8biDDnWlSPAxzfDBMpAQPqW8IGeUpuLJxrFUlbXod1VEI18rojaeOxA==","shasum":"141b51a9e343f99e5052839d94b1c9c0f693c475","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.9.4.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGoBLpUOEiTdkfDcvMeKYfqGlSh0lrUO+ALbFQUamZrKAiBU0+PK00UELWbicExkxczS5rT/UkH4BbUCVs3P55cZxA=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.9.4.tgz_1508333813314_0.45528081012889743"},"directories":{}},"0.9.5":{"name":"cherow","version":"0.9.5","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.32","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^4.0.0","npm-check-updates":"2.13.0","npm-run-all":"^4.1.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"5b6dde2dd7ad6e13f46ba058cfe608bb68967a1f","_id":"cherow@0.9.5","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-jupy8LL5jWNEtmeZWeJVBXf56BouWXUXlJLQpNp50uyztZRfAp0wWCapzDHCedtgq2Qy+axfugc1O0J/kwPy7A==","shasum":"846ec529069394ad60f77ea03db6941ed91be381","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.9.5.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDdNW2TTvcBqfs7/eiG0D05jCnYogG7yvzdjPhr5ZkCdwIhALtWk7j5g0cUeQ4mmJmDw3AJ8btJk31rbqC/xnzloEN0"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.9.5.tgz_1508373216093_0.9043498483952135"},"directories":{}},"0.9.6":{"name":"cherow","version":"0.9.6","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.32","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^4.0.1","npm-check-updates":"2.13.0","npm-run-all":"^4.1.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"39febc30569caabf66dba428a25bcb4c6ffcccd6","_id":"cherow@0.9.6","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-uDSCM2GDlEWMgqM3oUL1Ml4vvT0O0pu1gbj55cfWM9LS7rWVH1ajQq2ASkZ0lzATaPHVGdKUJI99Ft2l5i8E7A==","shasum":"2c0b9dc5ab538466d1559bf69f2900dde1a1cf32","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.9.6.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICvFir9Iid7i+pjSz/wPe87OEQNsVgBOG27W8EMHkVAXAiBA0LwK/SsM8YoSeM+LnyPwS2HpA2y8ok0wFR1XPOxyZg=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.9.6.tgz_1508405351969_0.20840692752972245"},"directories":{}},"0.9.7":{"name":"cherow","version":"0.9.7","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.32","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^4.0.1","npm-check-updates":"2.13.0","npm-run-all":"^4.1.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"990ebe8b3dc1ac66df2421fd1f113a683fe38cc1","_id":"cherow@0.9.7","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-826YB+G9x3C+/4a9MduFt5sQhTa29Kj5nIcFYI2aZmPDxWH/VDQa6aMdn2jspp3ZIGRCMzAbqfW5/bAV11rirA==","shasum":"50abf951c5d40d4ebe8488d2bc4b1a56b3cf6d91","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.9.7.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD/9jeaeoSa7IAYoo5caE3xtcKq7Jwns59F4Qf/op5gHgIgWUNSrge1b5lc3RDXc61Olvzd2x0CBi/xmVC8r3EBQBA="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.9.7.tgz_1508408828646_0.443669248605147"},"directories":{}},"0.9.8":{"name":"cherow","version":"0.9.8","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.32","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^4.0.1","npm-check-updates":"2.13.0","npm-run-all":"^4.1.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"22ac7229a0fc6c2442e2e0b67785d1d815c3786e","_id":"cherow@0.9.8","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-nH+k+vE7kr0OjfrfwEdMGCNQJjDEzXhB4VtHZlweqdWq6hWpvPGatHRCqpQHtIpRSIauoxV7tgklFtmyAnW7cg==","shasum":"1defb02836d56be1c2c38716df7a47d76b64e2b9","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.9.8.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBhRPvHhXhuwljdW22GbM3oRnUexYI6le0LyVzuAFyqwAiBxFmo/Lrm8aRvuF3SUKMXyuQlBSOxcKz3HXHwYt94qxA=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.9.8.tgz_1508416929752_0.3706799477804452"},"directories":{}},"0.9.9":{"name":"cherow","version":"0.9.9","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"npm run clean:build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","clean:build":"rimraf build","debug":"npm-run-all clean pretest","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint":"npm-run-all --parallel lint:src lint:tests","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.32","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","istanbul":"github:gotwarlost/istanbul#v1","mocha":"^4.0.1","npm-check-updates":"2.13.0","npm-run-all":"^4.1.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"17f2cb0d2fe4c261fccded95eff3cea475b945a8","_id":"cherow@0.9.9","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-M1lapGC+o0LrNraCxle0rlAfzgw8M3Mq1WECSyj0wnsOr+bO7eK0j9MgB/k+rOHjSu1SpF8d65HbVWraOblXLg==","shasum":"df6d469298dd7c7e99e83aefc21deb1ebf193b91","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.9.9.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAdFVWp52xxHHhOUwNABQqh19tNrHGqHCMmOXik8c5t7AiEAi8jxZLxBu2Er4pWxAF4Il1Ow4SmfUwtAhk/pdhw5/A4="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.9.9.tgz_1508648439478_0.3802932109683752"},"directories":{}},"0.10.0":{"name":"cherow","version":"0.10.0","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"4905f7494679c5c8e5f1024f4eec48c450509a02","_id":"cherow@0.10.0","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-+NW0IjetEmdMHv/W3MVC2hdY3VUv58/vyKqfypqI1VqRnhunJyhWYgLJ/Sw68y06ElLRpyAM4MDv1mhOluP4Tw==","shasum":"56c153445fcbc7409959eda9ef30f5fd1d082ae8","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.10.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCnjTPb81DMZ3gR8DvePhK9dvT0K0ysjJbXKKlzQ9ztuAIhAMRdGceh7M5won3TbqAiTVSvYP75W144leJo902/5yEV"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.10.0.tgz_1508758730966_0.5762308924458921"},"directories":{}},"0.10.1":{"name":"cherow","version":"0.10.1","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"49ab6505b6404c93344a8e9bfc882b8a0de8a68f","_id":"cherow@0.10.1","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-QHCIjFEeb0PdChsslXwMrnU40txEeE5zvFlDmaoBlS0O9zI5b7Ygnzino2F0myIuVZlUTJlctzOYmeA2s0Az0Q==","shasum":"3d93293ac571240d92725fe001cf069758ea8cd7","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.10.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC2YD2RwOY2TATRWwjNUst5QW+EthM5FXYSQQoCFofdAgIhAN2Lo+gJA6j5kkYzcVWlKleMYGs+GkWk27qEKp/LxLtY"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.10.1.tgz_1508765921539_0.9586191773414612"},"directories":{}},"0.10.2":{"name":"cherow","version":"0.10.2","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"21188a8ca64450a6d2de94fa67494a60b071ec1f","_id":"cherow@0.10.2","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-9QdYm8pteH1AoeKlVzTZaWtcuoJS9GkBpHygZmFDyZZGbfSwBoi483QrY8yuJrsTmCxOysF2refDkOwZTWiDLA==","shasum":"ae4caa68775e113178701b3930669ea019e26022","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.10.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAE66M1pSPjJMBSLBNdTbPPt7mcEr3XuCDc7qY1fGg9NAiB74BA5yas5uXz4boqu9EjXeZSmAg0UWhn8Lzi2UjwHjg=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.10.2.tgz_1508800498009_0.7043922208249569"},"directories":{}},"0.10.3":{"name":"cherow","version":"0.10.3","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"b3fb13faffef73f52e1290727ff73e5517705222","_id":"cherow@0.10.3","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-Sb56KkQNIb0Fg/r57yq6uhxI82Q2HVH9yLZkHRtHplSvuw+9VsMHFG/B9dwuIM5DBpsWjA01IhRwdsqkHOsBKA==","shasum":"30b4786e5d33ad2eaab936628b8c7fc96624a621","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.10.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDfhw0JI1xryvM4uE0M1HliNiKQM/KWae9oCk2qz8F8DAIgEEbEVg4AVn+PC9G0CkGSbHGgNZqS09D051poc0q4qZ4="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.10.3.tgz_1508845728994_0.2277163548860699"},"directories":{}},"0.10.4":{"name":"cherow","version":"0.10.4","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"40c8a19cb29f1d9f0d70f0429d3e118626ce692e","_id":"cherow@0.10.4","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-3+olGd5hgGampWbhtAS+h5QUi3AQupiyUhuVqasT889UHEmbXOaoyXrzEwLvBybp+ErYGZ0BbG1pXWDaHngYPQ==","shasum":"6bd60392c77c19729af6e3fb79aacb92020835b9","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.10.4.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD2ZrM0/p8oFsAo6SgeeOUPDxyWUJNjOltBQFMn9pRohgIgc8lOzX/WHxPErmwW9Ecd/F+9NGOCMhBmUZcgaXS387E="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.10.4.tgz_1508889405061_0.7566195565741509"},"directories":{}},"0.10.5":{"name":"cherow","version":"0.10.5","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"40c8a19cb29f1d9f0d70f0429d3e118626ce692e","_id":"cherow@0.10.5","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-u9rzVvyWSLNxuGat5hAR8P3cnd/1Kr9CEK+n59xor7B/x1HxW0SvnW+AUQFiiPS350Hjfo9FcpRIe0XK5FimIg==","shasum":"e4da80d71a47bcba04a1b5f98549c9aeace555b4","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.10.5.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHAokzufzx3TGvDatJk0wzPr8/GApCDrc0hDWbDrmZBRAiEApKo4cbn+JNLhMnRJVYYNYAtQT1/fyw/d5afpPpTFwh0="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.10.5.tgz_1508890928408_0.735007900511846"},"directories":{}},"0.10.6":{"name":"cherow","version":"0.10.6","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"13ab07249871d0c19c27363e1ffd1343813309a0","_id":"cherow@0.10.6","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-kXrptR0aCpw7fWgZq5fnAp0360ymIEJKoWeX/i4SOxLZPTnus1+yxNJTq74EDLKTSet2njy+9tws7AaQmhMqGg==","shasum":"894ff316bea32db62c4918a4010d2d60f1baea1a","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.10.6.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC2OD4p+8ZOPZ5O7UNqWBglGh6ga9Zsir6/cuUBcB/tMwIgVszepd55J92GmDNKI8pnAlaXkNvjoIIRtpkZi1KUGZg="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.10.6.tgz_1508915945604_0.43910514237359166"},"directories":{}},"0.10.7":{"name":"cherow","version":"0.10.7","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"db8e65bff0ce9fa2384d2c8a6c915f9381217c26","_id":"cherow@0.10.7","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-8dO6vDzKfrNbb0ulXxYMAeV0OVQhGtHtYNiOcSv6+cWdFD9dbhSvmSdBnItwtBRdmXJm7vgu/lx+meR3AyfKuA==","shasum":"e7804ea10ef7a8ba3c68b20e6d29844a968bf25f","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.10.7.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFqf+WlcA7OiZGfejnDVeAAHFQQljw3HVRQFY8zjDGJCAiEAz7IwFMcntpesgHQD9afcbPj3ck1G6mcnYsfNktGt938="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.10.7.tgz_1508938589575_0.5060765182133764"},"directories":{}},"0.10.8":{"name":"cherow","version":"0.10.8","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"3c3c8a76a7ec2b7253796722c1d2df5fa49e770a","_id":"cherow@0.10.8","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-1dp7RddkSZMT40YPL+pdFAElltmyLQEVZD0Jjp0BR+nPzM8HbGBXCYr9ZDq7KhOPbN6dfII/JKQLkVVy9sNQAw==","shasum":"42181548f6200498a0831107e20490e7925a7932","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.10.8.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBVMAJIKMnxKy1xX0RziwVa+QLwtBnUugOeBn8I40w4IAiEAvtQGl4rsBNdCi40P5RewxLYTkKd5ytC/SpWdD1MP1qk="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.10.8.tgz_1509181387325_0.04639603500254452"},"directories":{}},"0.10.9":{"name":"cherow","version":"0.10.9","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"4d2039ae622d36ed95cf7f2ed8054f85bbd70cba","_id":"cherow@0.10.9","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-q9FBc9B2iowHitNkCl8j5rodqg5+QgOQF0Mq3TRZm1N1arFGZmsOUrb3tbHl/ICR1IKVwgI2/FkonvuNQSTobA==","shasum":"480b757ead50c2bad6605ff80d4fdfd5ff42248d","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.10.9.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCYRI9YwMc2XSIJ26lgJjIUtfzlIxLJew/n0ljowXXJbAIhAISYTdFiJvkORTabMPbYDdpQNT09oX0GjMMf5xTtQ327"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.10.9.tgz_1509191077691_0.7643360702786595"},"directories":{}},"0.10.10":{"name":"cherow","version":"0.10.10","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"4d2039ae622d36ed95cf7f2ed8054f85bbd70cba","_id":"cherow@0.10.10","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-9/bN9d9V4afxH47OwBt+qb2GOM6mmFdw0yvTT0p1fcXm9H4iLERSL5NLEQcddVpHNOF7aqeuaO3FH/UvE/BEBw==","shasum":"20c79923beb6fbcb34358e26842029a2e4cbbc20","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.10.10.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBUxEyF/5kFXWvUgkrFdivHlJyc99aXXsP0nwOXeNNkOAiB+4ptihknQeqBJFXxSPNkulCOPqBJFupbefSGC3r4ahg=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.10.10.tgz_1509227826996_0.8379452447406948"},"directories":{}},"0.10.11":{"name":"cherow","version":"0.10.11","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"7ee1c43c69da706ef056f1bb14ca329483c0ca29","_id":"cherow@0.10.11","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-LXfQILyGtq73jn7wVPs1QcgHHeAsgf0yAoPB3WQIghCh3YvetGvC23XWA3DuAk0Vl9+56s+dqgyGdu4MfKuyoQ==","shasum":"1420462d5e77e31585c6fe3df6d3e732529feb80","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.10.11.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG49+6oQO+hWa25noncOGDl8PIZluhCFFJttr08Sm0KcAiEAzgHrbW456oOqFIZkZarNR+Y5h8QbkYc+3jGrq+rtoRw="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.10.11.tgz_1509327609646_0.9024632144719362"},"directories":{}},"0.11.0":{"name":"cherow","version":"0.11.0","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"fd230b3c986e4841965c49506aeb7345ea1af000","_id":"cherow@0.11.0","_npmVersion":"5.4.2","_nodeVersion":"8.8.1","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-7zTxdfJrG/lksh1jNBIVhw9Eayr63y5mBWQNVcFAh6zIh0REUqW6WHMB71OuCI9q0vvDXoKzRxMlPv68oEejpA==","shasum":"f1d21bb452a702fbbf3a6fa02b5e3f6c88284dac","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.11.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBuE5QU7pOtZBr7Tj5pI0LE8i6AhqE8SupJ0UrvaqndyAiB6WOGyRY437T+K/la+AfwSEVmrOEK5d5+GLV32TkYcjw=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.11.0.tgz_1509357343716_0.9879265814088285"},"directories":{}},"0.11.1":{"name":"cherow","version":"0.11.1","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"1cd322282707f6d41263fd4fc27a3cfefbfaf8d4","_id":"cherow@0.11.1","_npmVersion":"5.4.2","_nodeVersion":"8.8.1","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-lp9WNEDh0JfDGYsVtzB9jFX4HT4Pyu+O363O4+BnAxzX7g/kRkpHnsNcKvheat9BOyyxFxJcaUtUDoQPi8NyAA==","shasum":"095509359450b48a18b3462c27ad77faffbd733e","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.11.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDtBhqOoX5rxCrlD3D9+VHANB9Gg0V0aoorinN4bBgkagIhAIxOI/7L1Oh1HTumVWX38Msi+9adJ42OM8Ju1vq+d0Jv"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.11.1.tgz_1509493904935_0.3344041877426207"},"directories":{}},"0.11.2":{"name":"cherow","version":"0.11.2","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"3a72574f0722029d57398650fea7298c4cfb236d","_id":"cherow@0.11.2","_npmVersion":"5.4.2","_nodeVersion":"8.8.1","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-7AMIQJwjo3uYNyUQQ6mrGPD0c0DKXkwdDnBNpSI+MALGKXkzAaVILDoFu2e5W3GI9fLm8oPIHf8uzz1ejitJcQ==","shasum":"cf882fb8d2ea295dce9ef6d2614dae69c7c2516b","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.11.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICpszZMxlgZNXUOK8bJCAHiFaGcyJMRgmaFvn+9S3nL6AiEAuB2CEDikZO2YRK4uWMAKWzrz/N+sMeaVboQ4ucQPVoc="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.11.2.tgz_1509510654619_0.53001005994156"},"directories":{}},"0.11.3":{"name":"cherow","version":"0.11.3","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"f663af78ecdc4192415bcb3e01384ad275e8f524","_id":"cherow@0.11.3","_npmVersion":"5.4.2","_nodeVersion":"8.8.1","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-Cgv9YfzZ/lDxLZsRMrHsI/4lptYOBJ7d6mdDv1csLCqTALF49fmJgwVkETgKsvBMR+/vq5i3Q0sNy0ajvHztVg==","shasum":"1709c690be24daf2651bbbe123ed08b7a3b36cf7","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.11.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBgnn8TMVWhUpKikEexXZSNK0wu3ux2yiJ7OmmqBm1l/AiBKsLV8mGInD5unJ6vRipBWpvS+5Bh63iSMUZTU8cj0rg=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.11.3.tgz_1509626445086_0.827403258299455"},"directories":{}},"0.11.4":{"name":"cherow","version":"0.11.4","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"db5754e85390be77cdeece4fbd680b8989f9e629","_id":"cherow@0.11.4","_npmVersion":"5.4.2","_nodeVersion":"8.8.1","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-ylECNe665PsuMTxJuVL/ls2SABFqw7zW67LUIFZ23t2S2QZmkdkN+652Fu7DSH/WjbRCCn2kex6L34qPozHJbg==","shasum":"5d6589a6280238325e41076ee4c64c806a6f5938","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.11.4.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC1jdovKzIbJ5i1Fnmk0UkTnWOkDvJsOI2QFqPb3WX9hAiArNJ1/m8Dez0iYGA4lCtZWCDZBULfA2BAUO0sKwCpjEA=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.11.4.tgz_1509627449850_0.5925230325665325"},"directories":{}},"0.11.5":{"name":"cherow","version":"0.11.5","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"db5754e85390be77cdeece4fbd680b8989f9e629","_id":"cherow@0.11.5","_npmVersion":"5.4.2","_nodeVersion":"8.8.1","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-/p0h5oFFjO8E1rig1kkjtvHMgNgz52HqYov8GZcPZ5qKeMYpmZUiTopwJxiDNR1HNdFtEHdvvbYt1sf1EnC9PQ==","shasum":"fa7e260c61fb19b7d449fc02994a35156d56d1d3","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.11.5.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICjN/7FW5gFgk1QmiRvOEJ64pvw/YnPbmC1SGqgUF3I0AiACsrkIUz8RRCa6aMWgfyvf3mPwMqZzQkVbmcnbw6XMsw=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.11.5.tgz_1509680087196_0.4967684280127287"},"directories":{}},"0.11.6":{"name":"cherow","version":"0.11.6","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"db5754e85390be77cdeece4fbd680b8989f9e629","_id":"cherow@0.11.6","_npmVersion":"5.5.1","_nodeVersion":"9.0.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-DHibg3nc7zTcJgIqZ+5arZuBvCUesMimJEOUzPPrLoJaEDJXIBFgrE1HYM3hW754pWl5sXuSwM2PgavuDKOZNQ==","shasum":"8b9ca8b78082aa7fedd3fd1ae530a25ba6bd4b46","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.11.6.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIChuR1n92Z0gJK0z9jCk/7k4Zqc8r9TvB2xCmwfmi9DOAiAd4OtMj2etgNeyNqwONS7O1gZDSFV7l+r1GZ8qJ5/BSw=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.11.6.tgz_1509744471447_0.2183903525583446"},"directories":{}},"0.11.7":{"name":"cherow","version":"0.11.7","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"7b26e33a14b4c6fc925a2ccf73ac77c5d15e8e65","_id":"cherow@0.11.7","_npmVersion":"5.5.1","_nodeVersion":"9.0.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-fady/5ym32gdFcP7qRcm+FUTLVpiMJGciOzg3UGnQXUyyn7eX3yVQF8UnIP9G1Xjwx5WDaRtHQyXAzzPWtIGcw==","shasum":"dbd8fa37891754eebb14e37a38dc214528495183","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.11.7.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCnFXrT0NW+H9w4Oz4QqWLDrn6ytb4qtpXND11xkmXWcAIgU9c6imyRq377SljZDaSzL5Y5BZKRDogh09kJfNctCoY="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.11.7.tgz_1509795984623_0.4648598793428391"},"directories":{}},"0.11.8":{"name":"cherow","version":"0.11.8","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"7b26e33a14b4c6fc925a2ccf73ac77c5d15e8e65","_id":"cherow@0.11.8","_npmVersion":"5.5.1","_nodeVersion":"9.0.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-3k4bSWLZqUw6r9uSRfDob9IOw1oWH5nqSEguV4/KBUS6eFwuif0jiuRG/BiU1+fueYMWCx87Oawjy/4vysBmfw==","shasum":"0ceed35df68c2a6e78f2493a265d96c0a8410d61","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.11.8.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIER+VuckOO6jV/WB9xa8IN++czMCkEQrI/clvEr+S14jAiBLi+ztUwRTKkplMBHoGrvlQiIm2tFKETTHrZliZeNeuw=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.11.8.tgz_1509796976335_0.49555649352259934"},"directories":{}},"0.11.9":{"name":"cherow","version":"0.11.9","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","graceful-fs":"^4.1.11","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3","util.promisify":"^1.0.0"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{"chalk":"^2.3.0","util.promisify":"^1.0.0"},"gitHead":"042006fc78c388c0da9f82448824813d9f22f408","_id":"cherow@0.11.9","_npmVersion":"5.5.1","_nodeVersion":"9.0.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-XVpaRYj3DASWk8IY4Be4obpF3MoGE2gz4IHtu7uUGo0vMKtTyq6rqF4J05uBx5cdpjqcc2szR1jHwWtfkMy3Uw==","shasum":"78270bec8ea913407d116925d0be29116c810304","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.11.9.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAC7vOQESldW0xDpzniHN0FEYTZ7THYfBR+m9zUS1eXwAiEA5yxfoV9ff6b6qr9nYlfuoWf/IcChXdbl5zDm8FLk+Bo="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.11.9.tgz_1509813413472_0.30547511810436845"},"directories":{}},"0.12.0":{"name":"cherow","version":"0.12.0","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","graceful-fs":"^4.1.11","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3","util.promisify":"^1.0.0"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{"chalk":"^2.3.0","util.promisify":"^1.0.0"},"gitHead":"ced514cc3ce5d7ea42f85e6ee2708d189e04fce1","_id":"cherow@0.12.0","_npmVersion":"5.5.1","_nodeVersion":"9.0.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-V4pa2NztHJBGT34hgRyHhHcAJloOngHIe8stoZvC0XXnk47W95uAe5t2LYJM4KFXG6xF4cMUYfJoK7niX/Xfbg==","shasum":"8f41c1e0b4612140128aff675c8166e102855c58","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.12.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCL7dFVWwO1ZqJ2eQBGUTjGn6oHAJLJwrny1robU/NXRwIhAMXBGgRWmZvD7fjSq9FLhmJ80kf99IUokI8EhV+YFVqp"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.12.0.tgz_1509849776545_0.2957629456650466"},"directories":{}},"0.12.1":{"name":"cherow","version":"0.12.1","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","graceful-fs":"^4.1.11","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3","util.promisify":"^1.0.0"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{"chalk":"^2.3.0","util.promisify":"^1.0.0"},"gitHead":"ce8326a9b1116a8d997511ad44ff6734c9dc7ad1","_id":"cherow@0.12.1","_npmVersion":"5.5.1","_nodeVersion":"9.0.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-lyCT+GXIuAQABFDRAxh/3BoIjL6QyiY1p0etr1NUXIDfxuCYvc6tUOOodMyVwx95eQ6iWfYbyQBS1hsRaqNv3w==","shasum":"21ec601113dd79571675bebed31342a6c1d56fc1","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.12.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA/QfDB6h8WbmC0n3ZGajAOrqjtEWidIBvNX6bn6kKFWAiBMqki3i9IwxcIiNxKimWGh0LqoIPhhJvxrwRKkvTl/8A=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.12.1.tgz_1509925088106_0.4921895118895918"},"directories":{}},"0.12.2":{"name":"cherow","version":"0.12.2","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","graceful-fs":"^4.1.11","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.7.0","chalk":"^2.3.0","util.promisify":"^1.0.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"ce8326a9b1116a8d997511ad44ff6734c9dc7ad1","_id":"cherow@0.12.2","_npmVersion":"5.5.1","_nodeVersion":"9.0.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-qAvUTkuRaUN03SMCQQWZBE+Z8wlYoxsHIJfh00bt7gw3eewRxcbnlRlJaW0hy+kE4K1NX+h4czeb8Rgnb6xXhQ==","shasum":"2691c5adb7beeec74363ba7c3434e0a683d89bb0","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.12.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIArPhemuHO4XmVDcdDPsP7ixyyLPxNGCM/P03G6eE0RpAiEA14bvEgz1b0dExXev7wSiKwq0Xxqs8c48XxDwfhJhNNo="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.12.2.tgz_1509954367290_0.9783854545094073"},"directories":{}},"0.12.3":{"name":"cherow","version":"0.12.3","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","chalk":"^2.3.0","coveralls":"^3.0.0","cross-env":"^5.0.5","graceful-fs":"^4.1.11","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.7.0","util.promisify":"^1.0.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"ce8326a9b1116a8d997511ad44ff6734c9dc7ad1","_id":"cherow@0.12.3","_npmVersion":"5.5.1","_nodeVersion":"9.0.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-Uert/VcO5r2m4HVgb6xbSaLzvu67JhLEzX2OFZqpZ0CZzpb06ST8TgstfU8PQL52qoUrDfEb7xsv2NjGIG1xCA==","shasum":"bcb6a5c76d4fa338b480c715e7a52d347f84f3e1","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.12.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGpdXfdXWVcdQpwyQW7NNsSkwm1QTN9x3oyKwOLh5s2iAiEAl0fYF7kWIoSOWf8nx6LVgjkVg9jhGJ4pPVt8lym8edc="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.12.3.tgz_1509956123460_0.4163558392319828"},"directories":{}},"0.12.4":{"name":"cherow","version":"0.12.4","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","chalk":"^2.3.0","coveralls":"^3.0.0","cross-env":"^5.0.5","graceful-fs":"^4.1.11","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.7.0","util.promisify":"^1.0.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"e552e83af3a89b0b64e29b583401dd75bee3fd37","_id":"cherow@0.12.4","_npmVersion":"5.5.1","_nodeVersion":"9.0.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-D7TW3eSMxcORz4mnK1sEqVfZTd9VUfeBRza0pNr1Xxv3lykqDZwwok8/FkfGhHNqsEjfXPGUc8dCUuWNgi6yGw==","shasum":"4809afa78f468557902d7cf1caaac5d8fa6411b8","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.12.4.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFm0GTCn4C4OLsM+o7DrwBFmzMTCt4v/B73yFTauvzU2AiEApJrLetHeo3v3rKo/2vVGaZevEmYBl9tMZovbF51WIz0="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.12.4.tgz_1509977972338_0.343029546784237"},"directories":{}},"0.12.5":{"name":"cherow","version":"0.12.5","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","chalk":"^2.3.0","coveralls":"^3.0.0","cross-env":"^5.0.5","graceful-fs":"^4.1.11","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.7.0","util.promisify":"^1.0.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"a85186535f1563311580a35f047e4a0c74a4baca","_id":"cherow@0.12.5","_npmVersion":"5.5.1","_nodeVersion":"9.0.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-9eyPAwvXXVXaucQTpxYPXA2pmOeX85PaoNUplUcXc7l6k44AjO8tol7R7trE1yfzIcmOZ2EKiR6JOG6XEvmlIg==","shasum":"054eac7a4d57b7ac56512ac6ab5fe037fd01e452","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.12.5.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBZtNZHt4iZOLYGbs0Oy5Z9sNdBcw9fksawjycmLKPv5AiEA4hF2ujGirpr9PSkFAX/YRMuKqDjgb/QGi2KUpIg95uA="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.12.5.tgz_1510014887582_0.6456492561846972"},"directories":{}},"0.12.6":{"name":"cherow","version":"0.12.6","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","chalk":"^2.3.0","coveralls":"^3.0.0","cross-env":"^5.0.5","graceful-fs":"^4.1.11","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.7.0","util.promisify":"^1.0.0","typescript":"^2.5.3"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"2479570033e9db59217cb0623d2dc93c85ceafce","_id":"cherow@0.12.6","_npmVersion":"5.5.1","_nodeVersion":"9.0.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-H7Ef8QbQGpQXH1Ex5Y2sf0Z6VLtB/pHDn0r6wFT0annjm36fCiQDlPl7AnvfrKTY+PCRbrapw+T/zeXd0ouKVw==","shasum":"4108758bbc8d6c3333b05a49a7500da8cfb5079f","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.12.6.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICgxCDtQ3cJErJkn8cGnnpn2AN/a5qmepxe7vxgZ+Da8AiAoviC4RM4y1n8JHSLfaTMlBUsAFCD5rZ4i3kQJRkxe0Q=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.12.6.tgz_1510017294220_0.5267396201379597"},"directories":{}},"0.12.9":{"name":"cherow","version":"0.12.9","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","graceful-fs":"^4.1.11","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3","util.promisify":"^1.0.0"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{"chalk":"^2.3.0","util.promisify":"^1.0.0"},"gitHead":"7342bcc7f7ec551f616ea4ce96752272859a85ac","_id":"cherow@0.12.9","_npmVersion":"5.5.1","_nodeVersion":"9.0.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-uiRtKXYjGVRiKVMQfvrsAw7Uf2Qdw0yRKQ8tEAwuGsEHXg1r9F7qNnvRytywhBzHNI4tV2UZCQdMAsCGqNpdNw==","shasum":"29e26cb1cfcf8448b4888fe9ae563bdb3dc6f56a","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.12.9.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGsICxtr6mBc5UEDqliWrsXdHTQ6dGZxYsOEn1pVTzQ1AiAS0ApobgYuDY3HC6Oa8puRDdzAg1ZVf4WAYlC6oqVswA=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.12.9.tgz_1510057342503_0.8831340784672648"},"directories":{}},"0.13.0":{"name":"cherow","version":"0.13.0","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"MIT","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","graceful-fs":"^4.1.11","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3","util.promisify":"^1.0.0"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{"chalk":"^2.3.0","util.promisify":"^1.0.0"},"gitHead":"7afdbefaba7246491ac2e4a592ba1a487f8dfa84","_id":"cherow@0.13.0","_npmVersion":"5.5.1","_nodeVersion":"9.0.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-eHqP78XpBoX2S05EswHnuXfz+3LiL8csuSSUMo98R+ECdEUWqaXvCbFe9CeQAj0taf0hhF3d8+q7BS6s/zOLfw==","shasum":"5210db52b22f83c52148ee81e6dc18cf8d90f8f8","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.13.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGI/k6jpe5Bp1oWIMB4ho1MCYqyntV9Lb6E1MjNY8bsLAiAHfNjoCX3lTcp0K1xoTcnahrf+51L2n9Ccl3CN1XGdag=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.13.0.tgz_1510102019621_0.10691272653639317"},"directories":{}},"0.13.1":{"name":"cherow","version":"0.13.1","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parser","ecmascript","ast","javascript","typescript","parse","performance"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","graceful-fs":"^4.1.11","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3","util.promisify":"^1.0.0"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{"chalk":"^2.3.0","util.promisify":"^1.0.0"},"gitHead":"ff46db3451d042add138420b774b157a9ba0274a","_id":"cherow@0.13.1","_npmVersion":"5.5.1","_nodeVersion":"9.0.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-LALv43k48LwGF2T9IN8Cw9TPr9b/x+nAjv3nJgh0JpP50zY+F4+j5ESXzWYmsdSNbx25td8HUYtLuOhfY3Hg9Q==","shasum":"8cac50efd1edc6afcf28234800ecd7e04d1bd7fb","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.13.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC0lBmdOgxguNktOMO+KSD9d6iXxmGHBzM25/8BWV8N0AiAkwv7gs/RyFxPNJEZmNc+tffPooqm92s3abn/mZLkWIA=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.13.1.tgz_1510125667450_0.7873152408283204"},"directories":{}},"0.13.2":{"name":"cherow","version":"0.13.2","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":[],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.0.5","graceful-fs":"^4.1.11","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.50.0","rollup-plugin-buble":"^0.16.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.7.0","typescript":"^2.5.3","util.promisify":"^1.0.0"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{"chalk":"^2.3.0","util.promisify":"^1.0.0"},"gitHead":"14f23cd5ea699c6c549d5e8ba1555dee5726af73","_id":"cherow@0.13.2","_npmVersion":"5.5.1","_nodeVersion":"9.0.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-F7pDenkp0b1Ap3zCcgQ3Kawe1sbTUqXvcSMfZBo/DcmQ2Ffy3zsnbUBG7vJteI18+KcLd69gplYGxcCdRw7PyA==","shasum":"da872db781898d4b17e0df5a70852d1fbfc593f7","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.13.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCdVw6oBvWHMWvQRLeuIfovStLy72twyAwikPw77kKExAIgYkLI9uL+t+DR3SpikoqNwJ3zCfpwJ4A0WY6kedKMk1U="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.13.2.tgz_1510185798587_0.47980935871601105"},"directories":{}},"0.13.3":{"name":"cherow","version":"0.13.3","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.1.1","graceful-fs":"^4.1.11","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.51.1","rollup-plugin-buble":"^0.17.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.8.0","typescript":"^2.6.1","util.promisify":"^1.0.0"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"bb0664a7ac1a3755ded6874fd2ee0a74b976b764","_id":"cherow@0.13.3","_npmVersion":"5.5.1","_nodeVersion":"9.0.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-eY45yPX7D/jhkk3e1Eu269vC0RWcT3gPg5HvnrRR5U0Jpwk9B3iwEmtNFuSrzXwCs9UTvmSA2WJ0wgMRmTfxAA==","shasum":"b4b71175ca47232ea6dd23b62c36df2ca31e1b56","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.13.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCOjIHw5HxnfYLTkwu9w3stojAllCwuvSOb8MAhD1r4UwIhAI3Jv6gyA0gdgFe7C0wNrbtvZT/r/Hbo/iH6DDvMtQ0G"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.13.3.tgz_1510188026912_0.48990059667266905"},"directories":{}},"0.13.4":{"name":"cherow","version":"0.13.4","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.1.1","graceful-fs":"^4.1.11","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.51.1","rollup-plugin-buble":"^0.17.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.8.0","typescript":"^2.6.1","util.promisify":"^1.0.0"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"bb0664a7ac1a3755ded6874fd2ee0a74b976b764","_id":"cherow@0.13.4","_npmVersion":"5.5.1","_nodeVersion":"9.0.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-lJPQcR3lnOEyjmKzTW3eG36o9O+ygC7upBpgBi5J08MePLp1IFGxpUO7OFH+4Xo3gi+Rp4Vh1ADhM53T1hplWg==","shasum":"134f0d6771c990da1548b6dc2cf66a92ac6d6b64","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.13.4.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCTA5XV2YKH5rXfrBZ0vaI+QIxrYzEkcDFyqsjy2jdE+wIgNwy3g3V6dfhKvhxXVRk20OzaFDjwtqP8tjd65D3RrfI="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.13.4.tgz_1510194892611_0.7216499384958297"},"directories":{}},"0.13.5":{"name":"cherow","version":"0.13.5","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.1.1","graceful-fs":"^4.1.11","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.51.1","rollup-plugin-buble":"^0.17.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.8.0","typescript":"^2.6.1","util.promisify":"^1.0.0"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"3bf42ddc224c90225d37f3395cb2550da230c0b3","_id":"cherow@0.13.5","_npmVersion":"5.5.1","_nodeVersion":"9.0.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-SFxmoqQquy5QQyYhHBQ5fmP2Ot0yGkAyksgcfAVv1LmVv3AuCZEKUx2j6M0KrnSdqHjLyZPxQGT2esX5OvBD1w==","shasum":"18d5b8202107056a8e819c7c6b06a28f5e02d214","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.13.5.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD+/LboakA9FuzL3jP5CVem0ow3QI+d+fBGWoQGcCPu+wIgJzc4G7JLJsJkl6Md5JmZk/B1uszNIHu/GqUqGUy9tjY="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.13.5.tgz_1510227919811_0.43032225384376943"},"directories":{}},"0.13.6":{"name":"cherow","version":"0.13.6","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.1.1","graceful-fs":"^4.1.11","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.51.1","rollup-plugin-buble":"^0.17.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.8.0","typescript":"^2.6.1","util.promisify":"^1.0.0"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"21e02d1949ce0d1d5c14a09ce50b87bda50c4678","_id":"cherow@0.13.6","_npmVersion":"5.5.1","_nodeVersion":"9.0.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-RrycfObPf1ydmfmvPhb/gZU21hIqsw6fr1TpgyeqyFZWjeCfpoPEEsztHajU8Ok40GwhyAfJqpuIe9MeEdhazg==","shasum":"d81369a6803509dbb6525f61f2ffece66fbeb0c4","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.13.6.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDUxHV9hye8dcT6D+Du2VJaYEXVU+oIRUJp4Zh7dmkHUAiBRXfJcMtZx6t+GKL5p/yeYemwd8WCOrEgkoc9dVDNS/g=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.13.6.tgz_1510232911698_0.0042973344679921865"},"directories":{}},"0.13.7":{"name":"cherow","version":"0.13.7","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.1.1","graceful-fs":"^4.1.11","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.51.1","rollup-plugin-buble":"^0.17.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.8.0","typescript":"^2.6.1","util.promisify":"^1.0.0"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"46ec4af412bb84426f5be5e0c9684f04c138fd20","_id":"cherow@0.13.7","_npmVersion":"5.5.1","_nodeVersion":"9.0.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-Y7EKtvRFqbBBHgBYYU/FbNFWaqCqppMJisCjmRtTTXznW8fyvhsgdiQwERjZSA72YgJy8QmrIhuscAfGSZ7TJg==","shasum":"f2180e458aae0e23c3262859174c6908b66223c2","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.13.7.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCb2ViUTm0DfYFNqPgsavJo8vYcK1Bqs6EayJRHc9q1qwIgAyL37mGjCkxN+GNzDvyabwlBD9uwODBiAaeBtY8kyZI="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.13.7.tgz_1510234966194_0.28871618467383087"},"directories":{}},"0.13.8":{"name":"cherow","version":"0.13.8","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.1.1","graceful-fs":"^4.1.11","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.51.1","rollup-plugin-buble":"^0.17.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.8.0","typescript":"^2.6.1","util.promisify":"^1.0.0"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"2435c3c5ce6ea375e5004bd907f13722e4e94265","_id":"cherow@0.13.8","_npmVersion":"5.5.1","_nodeVersion":"9.0.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-7A+zZP5aGWPEOAeLI2NrufdiRReTpWFP/MnkBGP7/siYgQSrYaZMfPqOlf/P8bxrwtLbnuBF3dDMn+qsRvA8kQ==","shasum":"9b4add9c1b1025b01a6d3114ca342716e67e09dc","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.13.8.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFNH7DS+fXEvhaMvO2rNvBh661W7bMVCnojRxviBikqDAiEArTen9koS2GepC611Rk4jdHQ8jXvnGULUxkyQmQP0SOI="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.13.8.tgz_1510359435693_0.44110828428529203"},"directories":{}},"0.13.9":{"name":"cherow","version":"0.13.9","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.1.1","graceful-fs":"^4.1.11","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.51.1","rollup-plugin-buble":"^0.17.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.8.0","typescript":"^2.6.1","util.promisify":"^1.0.0"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"3f1fd744da2de3ebcbdbee035b7012fce3db3b3e","_id":"cherow@0.13.9","_npmVersion":"5.5.1","_nodeVersion":"9.0.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-0bhM4dmgwVqhZqLZzbVXkQ8H7RkSxVMNZ08DGcg2GKdVSv4WKzdHvghZDXKvDInyDfVUeYVpyvuLBWgXBLt5lA==","shasum":"f0217a5404dcf473d359c34da0efb2d02c6b8e6c","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.13.9.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH0loKyl0k7CHwntx3SvitruHZXbNGgeLLSSaTPZlzhhAiEA/lXEbwzIM54vRm7kxNj8s81kbfY3S/0lBJNqSyqcijU="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.13.9.tgz_1510583774190_0.37676983256824315"},"directories":{}},"0.13.10":{"name":"cherow","version":"0.13.10","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.1.1","graceful-fs":"^4.1.11","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.51.1","rollup-plugin-buble":"^0.17.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.8.0","typescript":"^2.6.1","util.promisify":"^1.0.0"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"e2a4d72aad9bb13b63357c1f579e821e2559f726","_id":"cherow@0.13.10","_npmVersion":"5.5.1","_nodeVersion":"9.0.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-GcPTN5rhM7XomMHr+iQoM5BA0CjAzwcK+2HT0vHYCIK/YcqioV+fRByI9X/DyHn5/5YxLJQll6QEQvp1w6Xc+g==","shasum":"686cdb864e58c83f34d3e5425e42c482fd1d0b2f","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.13.10.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD0csEiTea7qLJO9ixHLXSnUmzJZEtCgoQAdvY3kZtxOQIgd/V/mu9DmXpsBn2YXuHzd13Ec8eIYLKwKAMWd7eFctU="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.13.10.tgz_1510720544996_0.9496737918816507"},"directories":{}},"0.14.0":{"name":"cherow","version":"0.14.0","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.1.1","graceful-fs":"^4.1.11","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.51.1","rollup-plugin-buble":"^0.17.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.8.0","typescript":"^2.6.1","util.promisify":"^1.0.0"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"f54ba654259ef1510de23caa086b097c75fd531d","_id":"cherow@0.14.0","_npmVersion":"5.5.1","_nodeVersion":"9.0.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-+bXUVA1VkRsA2NiwyuISVxpDT96xJHmA262ru8wnPW2G4JEBH0aRA0DjZYRZmonQZELnsPLCNfLrAj1CmjZbhQ==","shasum":"8141f1d65084735b42b6d13504c02f94ab3b8dc1","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.14.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDJ+lyEXVjpA7zD3ARJTqzSQgC9AWMb8nkK3Azto3cnIQIgDYATp9LJAr+1c6WGqUcucZhqvr1s2Pl9tN2+f4L+kDo="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.14.0.tgz_1510729235666_0.48798504611477256"},"directories":{}},"0.14.1":{"name":"cherow","version":"0.14.1","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.1.1","graceful-fs":"^4.1.11","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.51.1","rollup-plugin-buble":"^0.17.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.8.0","typescript":"^2.6.1","util.promisify":"^1.0.0"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"443b8d1f35c234630ce2a7e330a9eb27c2d96661","_id":"cherow@0.14.1","_npmVersion":"5.5.1","_nodeVersion":"9.0.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-SrV2iBKNvwVliTFGmMRS5iv4aWlSNS/0c9LNfcmAuiEAInaiCcNz7SmeYMtLsRzBMR+7d57v0QN+qcLLU0I62A==","shasum":"575208d478453843d2c60afbd08953551b551392","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.14.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCzlAe1DOaQkjX9b6QhDkStfYjM53TEQyglG6M3dkVH1wIhAKTa8KH5ZJNTmmpyRU4T5Lbc3GxrHb71gUY9RjONxvYc"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.14.1.tgz_1510786124746_0.8831174820661545"},"directories":{}},"0.14.2":{"name":"cherow","version":"0.14.2","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.1.1","graceful-fs":"^4.1.11","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.51.1","rollup-plugin-buble":"^0.17.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.8.0","typescript":"^2.6.1","util.promisify":"^1.0.0"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"443b8d1f35c234630ce2a7e330a9eb27c2d96661","_id":"cherow@0.14.2","_npmVersion":"5.5.1","_nodeVersion":"9.0.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-kc2yTczLuYEBDG/6szvxuv+yAnA20ruXVjXwR41mfzpXi85oJzWYb2VNdYbOXuN7rMEilPLQsl/tUmPb0dJm0w==","shasum":"2263a7abe68bb1a0dedfe0d06d9c36d351a0f19c","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.14.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC3CWykcrrqvqUKWp+Gz7Y886IRbxVg+psqOYi/709nTAIgJsVykWjGlZJ9HIcKTvefmo4Z/f+jh62B1WFgVqau4MU="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.14.2.tgz_1510795768156_0.7716875146143138"},"directories":{}},"0.14.3":{"name":"cherow","version":"0.14.3","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.1.1","graceful-fs":"^4.1.11","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.51.1","rollup-plugin-buble":"^0.17.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.8.0","typescript":"^2.6.1","util.promisify":"^1.0.0"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"eee70b4b4b1f5ffe7f5406f5497af479ff75c85f","_id":"cherow@0.14.3","_npmVersion":"5.5.1","_nodeVersion":"9.0.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-s+qut0WipXClDUk2+9WaJWzbqXuYufUd9GiwmzZlsdiN2hA575gxP+Sdx28Ou4/XxO7PP9MtxlB64KaPJ8fIKA==","shasum":"16afbfbc076adec8c441aef00e50afa714dc4abd","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.14.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDpAVssC4b0IIQop8ooDIInrIkWdFWFj0K3i82pncCyCAiEAjrbmGAHJrGCVzVVAGcxufBhwP8W0T9bCKIJOopK/WcE="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.14.3.tgz_1510805736828_0.01240000524558127"},"directories":{}},"0.14.4":{"name":"cherow","version":"0.14.4","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.1.1","graceful-fs":"^4.1.11","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.51.1","rollup-plugin-buble":"^0.17.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.8.0","typescript":"^2.6.1","util.promisify":"^1.0.0"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"c6e23de2abde39dc01c2756fba82a7fd32410d1e","_id":"cherow@0.14.4","_npmVersion":"5.5.1","_nodeVersion":"9.2.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-/65LwrEpYOw/LQ82eL1e49KqgSWQIEx/VQy30wrd2l80j8t7tWLHUsY3wl4dbIfZqNBpzJ89UZJPbJdT/gtiJg==","shasum":"0d1df39cdee8a6b720136bf4a5a263def0ddfcb2","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.14.4.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDk4ZXQKf3TUkVIY00el1l4LOc1sNa1NHWKID/KYF9RXQIgHjso2xYOOHmobxb4BRWOnG40Y7cSYbx8Wxxgg4pXWwk="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.14.4.tgz_1510839823908_0.9297067038714886"},"directories":{}},"0.14.5":{"name":"cherow","version":"0.14.5","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.1.1","graceful-fs":"^4.1.11","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.51.1","rollup-plugin-buble":"^0.17.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.8.0","typescript":"^2.6.1","util.promisify":"^1.0.0"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"a25cc53183d29d89ca703fbba4b025abfa946124","_id":"cherow@0.14.5","_npmVersion":"5.5.1","_nodeVersion":"9.2.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-B4AScnLElef1ggcHQyQQnUsqbtGi6grEBTBGU7n6cxM5YoNlmAyXc7WBo9EDsLg3KlrLs4BT7GjUWgv9pCpeAg==","shasum":"80719be1ba90d7b771c96344519351436d48e1d6","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.14.5.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGuEHxjAk2wjhxJL3JkuTRy+r3rr0SUOuNQjy6t/Tqu3AiEA7jfM+5KL9+L72NlckNPpWNUedtULptqAfqpjGNCCyBo="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.14.5.tgz_1510890585591_0.7163875426631421"},"directories":{}},"0.14.6":{"name":"cherow","version":"0.14.6","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.1.1","graceful-fs":"^4.1.11","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.51.1","rollup-plugin-buble":"^0.17.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.8.0","typescript":"^2.6.1","util.promisify":"^1.0.0"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"44609cd7d4fe5bfa501ad4634f574353d236b22c","_id":"cherow@0.14.6","_npmVersion":"5.5.1","_nodeVersion":"9.2.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-0utJC214HQLFP1BXwLUMcp/ft59jBzcnwtk6RtEdWIGokA5qjol1xNun8DNePpjL68McXHBfoeFQVex132+q8w==","shasum":"b1636308daaf2caf565be47663e2f7e9212ba259","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.14.6.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD7jknQDs/B2CU4SZTAWI3YukvBnQNs2i/AsHIWCiKukgIhAOpUTgRtRfrGgQ4eixM6PdNKuiULfm+REDsR8zmFK6TI"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.14.6.tgz_1511005694539_0.32326210709288716"},"directories":{}},"0.14.7":{"name":"cherow","version":"0.14.7","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.1.1","graceful-fs":"^4.1.11","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.51.1","rollup-plugin-buble":"^0.17.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.8.0","typescript":"^2.6.1","util.promisify":"^1.0.0"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"ff283c8b2046f93115fca2ed220df083b4958a1a","_id":"cherow@0.14.7","_npmVersion":"5.5.1","_nodeVersion":"9.2.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-UCxduqvaAhpM0jCTIGiINNqV6pAlFxkVcR4CjTFs4qeMckXxpHMboFyh1x/QeLIUbKLICEkwZxy3SXjeoQly5w==","shasum":"d5e115aa505bccf12c2e42af77713d3e51dccc7c","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.14.7.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDjf5IP8mmmpv4U3Y7NDU5cL3dW5y1O/oSDx5MZ7KQI3QIgTKaFayktRFgtLzndHtoD9XBFzEEGQd+UKU3KtRyRzZE="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.14.7.tgz_1511013027423_0.8077574111521244"},"directories":{}},"0.14.8":{"name":"cherow","version":"0.14.8","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.1.1","graceful-fs":"^4.1.11","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.51.1","rollup-plugin-buble":"^0.17.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.8.0","typescript":"^2.6.1","util.promisify":"^1.0.0"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"ad1dbaa4420af11112b0b6b54a2af681a43b85b7","_id":"cherow@0.14.8","_npmVersion":"5.5.1","_nodeVersion":"9.2.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-zs2TXNnjZGqZgwO9gUb2/RZcSAgNY4Qy0loih6+E3+eUvA3qkq3qWJt/Ub1ZzPA2O84VdIZqmh54nlMJvMv+dQ==","shasum":"a954ac78f2014f37adcbcc2f47797f700d5b0e1e","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.14.8.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHPYrvs0MYMLF06sg96/CISbkYjSVXAyiZazmLd2+ER9AiBelHuWQhYHNBY9x8mMdubV50AKIeS1lLUTr6Pa22T/Wg=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.14.8.tgz_1511053827950_0.11350090545602143"},"directories":{}},"0.15.0":{"name":"cherow","version":"0.15.0","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.1.1","graceful-fs":"^4.1.11","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.51.1","rollup-plugin-buble":"^0.17.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.8.0","typescript":"^2.6.1","util.promisify":"^1.0.0"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"32c28be3bc324286bb313bf6bc82f5563e272593","_id":"cherow@0.15.0","_npmVersion":"5.5.1","_nodeVersion":"9.2.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-g9w6TDpapdCPaA0n+SGlDWP/CYQRh4i2XzW2HUYsgKIZPMOxAO+AntyrpGbE8A48U9IDUeRBTjOGukqM4zPJJA==","shasum":"573c0d4f7d39dacc9624fb5c09a71494e4ef9932","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.15.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICkYsdpW+qUFirTHS5Pr2cm3T4SMYgQa6t1ZHfsHH0+nAiA1ELJaRlyB8pNcS0b59UuFsG8536dIjlvamgW3noq1Kw=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.15.0.tgz_1511093033872_0.21515008830465376"},"directories":{}},"0.15.1":{"name":"cherow","version":"0.15.1","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.1.1","graceful-fs":"^4.1.11","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.51.1","rollup-plugin-buble":"^0.17.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.8.0","typescript":"^2.6.1","util.promisify":"^1.0.0"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"32c28be3bc324286bb313bf6bc82f5563e272593","_id":"cherow@0.15.1","_npmVersion":"5.5.1","_nodeVersion":"9.2.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-K8Qsmf1TbjAoCWKwgC6VD6l1X8BIGwfOBqTMt6KAiYH7zP8C5Cx4PpixK7sJxFtXL2ZW8UrYnS03t4K804AC9A==","shasum":"2c6828395841e0b21fa1dbd2f758e151dd0c2e2e","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.15.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD5+WZ/0F8BJiGYeg4E/g/7XJAJBlXBvlva/Ve0bcxn9gIgaAkMF38Eq17pWofbbTzwLx/ExOriEUHplcRkLqPJkmM="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.15.1.tgz_1511096082020_0.2842254531569779"},"directories":{}},"0.15.2":{"name":"cherow","version":"0.15.2","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.1.1","graceful-fs":"^4.1.11","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.51.1","rollup-plugin-buble":"^0.17.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.8.0","typescript":"^2.6.1","util.promisify":"^1.0.0"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"e53e38e40eeb1bc8a3bced23ecc94270694eb458","_id":"cherow@0.15.2","_npmVersion":"5.5.1","_nodeVersion":"9.2.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-a7aS2cs2JOsnO0OXoHSHTAD/j42mru9nOmJZMOTPC+ROnMHMBLy7oxp5SDEmFrZ97gzdiE8OBrwIpjXO6ssl2w==","shasum":"5ceed576d351a143730bf4fd4642604ebd4877be","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.15.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBeiJI+LoAM2jG3R/TJ1F6fWrkkz62NeT3lC0WnjCPx/AiBlwtZrQRVAMlwVYL7ady+8yuxRZk4Mc0kQQ3FoiRiSnA=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.15.2.tgz_1511099527224_0.9869277209509164"},"directories":{}},"0.15.3":{"name":"cherow","version":"0.15.3","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.1.1","graceful-fs":"^4.1.11","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.51.1","rollup-plugin-buble":"^0.17.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.8.0","typescript":"^2.6.1","util.promisify":"^1.0.0"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"e53e38e40eeb1bc8a3bced23ecc94270694eb458","_id":"cherow@0.15.3","_npmVersion":"5.5.1","_nodeVersion":"9.2.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-o3kba8AjsVxCiaQyBLjVQBCsdEpf12wG8UbE1yqeYfQN+4cTUzhzqKbSrfcH3ijGTxQV25YFQhXhKjhYXpXOCw==","shasum":"b50948c42671f22f1db7f2b53a0747f78e7ee8d1","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.15.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBmcg0vPFrJ1DxOROpUOYd0ogylVnUTmvT1KPzD0Hd06AiEA2nEuhLAXGi1uhRu8lY3YnkfgHbKOFMzLkkjuTCfxCGA="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.15.3.tgz_1511136776768_0.9341625240631402"},"directories":{}},"0.15.5":{"name":"cherow","version":"0.15.5","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.1.1","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.51.8","rollup-plugin-buble":"^0.18.0","rollup-plugin-uglify":"2.0.1","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.8.0","typescript":"^2.6.1"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"8dd3d9c4a38cde4146ca8186438da1d3dde3c975","_id":"cherow@0.15.5","_npmVersion":"5.5.1","_nodeVersion":"9.2.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-A/DUSGoDfJutMODG7gkVJlwje0Mn4OI+rP15DM7VILdKapDBdtkrbSnePJHok8FsVvMCuyjeJJkwqivEkJ4HmA==","shasum":"37872e2931ef1c47e9f04118dfa0061028e7c2a7","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.15.5.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGPvK4Z+zyYEV0ljS9PgJf7lJ8QOJepxaOYNBKKtNhrmAiEA5YuU294CJYmB3EfIrQXBuN7O4dFTajRYwpdWbJpBlYg="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.15.5.tgz_1511397181498_0.06811814149841666"},"directories":{}},"0.15.6":{"name":"cherow","version":"0.15.6","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.1.1","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.51.8","rollup-plugin-buble":"^0.18.0","rollup-plugin-uglify":"2.0.1","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.8.0","typescript":"^2.6.1"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"00e937dab4089e7d83c43c9fef271704602bed6d","_id":"cherow@0.15.6","_npmVersion":"5.5.1","_nodeVersion":"9.2.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-AYepTFCJGutq9MWTk3woBWBBObiVFwPuP+W+6PN7lbwc9HxRuDFZMOJD6CFo2uzuH1qQK98vFErf20RPO/QWqg==","shasum":"e3282c7eb0173da8460c9dddaf27900999c2bc58","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.15.6.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDrPxUKFyZX+xvXi/kwOPkidJCZHfSIc8L/xpBfVqR6cgIhAOwfeyQPtSPPrKhX+piyBlBY04dQE/JG/AOoTYx6lk0M"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.15.6.tgz_1511447206744_0.5336011142935604"},"directories":{}},"0.15.7":{"name":"cherow","version":"0.15.7","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.1.1","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.51.8","rollup-plugin-buble":"^0.18.0","rollup-plugin-uglify":"2.0.1","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.8.0","typescript":"^2.6.1"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"921aab8bb6a920660471f5ecfa5b4b6e8135d471","_id":"cherow@0.15.7","_npmVersion":"5.5.1","_nodeVersion":"9.2.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-Ts1LkzYVknCDbxIFg6DJXH8XGtva2w0o9Icmw68+LnZdDDKXoqAv3ydqgwGaV7poeX83VqZUeUnS5rICmkFozg==","shasum":"e6936ef1e5edd10cdefa44e48c3ca55451de22fa","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.15.7.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCAJ+KhYaGgMldMGKbJg+5dvPWNLWnkUE5j9GsCtLcz9gIhAKXRLPdiDRbL664UodDHOgkyZTJknkJzLQlIGuGlObdH"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.15.7.tgz_1511537500037_0.5143360060174018"},"directories":{}},"0.15.8":{"name":"cherow","version":"0.15.8","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.1.1","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.51.8","rollup-plugin-buble":"^0.18.0","rollup-plugin-uglify":"2.0.1","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.8.0","typescript":"^2.6.1"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"1909a2550ef7bbe5a90bd5bab42f4be9fcb60314","_id":"cherow@0.15.8","_npmVersion":"5.5.1","_nodeVersion":"9.2.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-S1xWDjqV5nGgmDn3NRUcdJsHCeFLSOyHdVwQc2trpD0re25guCFG1fMhYRpNmumRevcXaRXrHAoX+5HI0uTnSQ==","shasum":"e99d8133ff514d60cf7e9b887d8c06077523463b","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.15.8.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCeZAOWqOuKjGdyX4skmiQ0HxHdc/jd9m2fUQxG/FTniQIgUzc6z+ZgVG6TBWGHPyHS0BPLx15PeN/GTIHKlxFEDl0="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.15.8.tgz_1511594731652_0.7646041004918516"},"directories":{}},"0.15.9":{"name":"cherow","version":"0.15.9","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.1.1","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.51.8","rollup-plugin-buble":"^0.18.0","rollup-plugin-uglify":"2.0.1","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.8.0","typescript":"^2.6.1"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"282c0e601ed747d75bd7e9491b5ceadb1325c75d","_id":"cherow@0.15.9","_npmVersion":"5.5.1","_nodeVersion":"9.2.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-xVb0wIpFPumRNqkXX35Sp7YdarBjCAr3UYB5kL1/5YoLYUGgSewpfP052w1o2CimtZpXIQrBjJPwJy1S4pt1ew==","shasum":"b8bbb692d3cb9cd73b4dd970d28cd40e924f2666","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.15.9.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICEEfEcAnT+trNMJRtnqXqNVFxwYMgX1cGicV8IkdIfZAiBj+5PQkaxLJZ72CV0DdA4GY6cEPCFVWEwEJ6PO6X9BxQ=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.15.9.tgz_1512087273808_0.09487198386341333"},"directories":{}},"0.15.10":{"name":"cherow","version":"0.15.10","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.1.1","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.51.8","rollup-plugin-buble":"^0.18.0","rollup-plugin-uglify":"2.0.1","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.8.0","typescript":"^2.6.1"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"5166e28713b3bd4800fd466d39cf26b123805e22","_id":"cherow@0.15.10","_npmVersion":"5.5.1","_nodeVersion":"9.2.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-zCL/EB4/Vp0dE++iJO888//gX9pNqD72k7o97Y732+Vsi317M/vgM0spplEPXYC4G8RTnoGwLTQtGPpgaBPtWw==","shasum":"e5389b23b6c5510e729885a744979720c3407ca9","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.15.10.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDTAHNtzyTvzLHbl3GFSCl7SwBehZbbc3at2X9oOu0PwwIgd9Mb9mPYZK57iAFOwI90WxFDJWlA0AjcAXgIpC6fkE0="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.15.10.tgz_1512571228159_0.6556800191756338"},"directories":{}},"0.15.11":{"name":"cherow","version":"0.15.11","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md","BENCHMARK.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/specs/**/*.ts -R spec --bail","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/specs/**/*.ts test/specs/**/*.tsx","watch:tests":"mocha test/specs/**/*.ts -R spec --bail --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/chai":"^4.0.4","@types/mocha":"^2.2.43","@types/node":"^8.0.46","chai":"^4.1.2","coveralls":"^3.0.0","cross-env":"^5.1.1","mocha":"^4.0.1","nyc":"^11.2.1","rimraf":"^2.6.2","rollup":"^0.51.8","rollup-plugin-buble":"^0.18.0","rollup-plugin-uglify":"2.0.1","test262-parser-tests":"0.0.3","ts-node":"^3.3.0","tslint":"5.8.0","typescript":"^2.6.1"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"5d56e01afb0d93919aac615df66d4eb8f3afb7ee","_id":"cherow@0.15.11","_npmVersion":"5.5.1","_nodeVersion":"9.2.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-/JEx/tn/N1XkR1js12GuYaffQOwN8ZqTj6TVR7zbSBiGwU1McJeP+OerPCzrvaZvGjsiiSnmbiuRcCgy+Ljk+g==","shasum":"f219609db627ae7d8bd51c46dbd33f1908e18bcf","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.15.11.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDequ+paSrqnHB8yeRb5I3IddTWlLVV7lzjNh0vcWBLGAIgXvSYv6cylCVatH8GYrwOE7+ZVlmLAcbeI+TpRGmHBVg="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.15.11.tgz_1512612381188_0.9555833428166807"},"directories":{}},"0.16.1":{"name":"cherow","version":"0.16.1","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.44","@types/node":"^8.0.56","coveralls":"^3.0.0","cross-env":"^5.1.1","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.0","rimraf":"^2.6.2","rollup":"^0.52.1","rollup-plugin-buble":"^0.18.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","ts-node":"^3.3.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"bdf1b604e1e3ac1c932055bad54a6e3379c3006e","_id":"cherow@0.16.1","_npmVersion":"5.5.1","_nodeVersion":"9.2.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-hlBNL5tSNGYl3I6QmZOKXKz9IUvfsTV7hN1UJ/G0qH4O6wt8nKJr4CFDtR3E8nP7pzS8J+mfAym+nACfRFulbg==","shasum":"3ccc47e704145645e211daf1f24681ced3e75886","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.16.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGkijT3be0GIRkXqHMzs6KqQ4uaQ4ok2Wy691zpGMLz0AiEA8bW12JeG9K1l02ehZ59Hm5OSUKvaYuGGpt4Fb8g84S8="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.16.1.tgz_1512822749827_0.803734727203846"},"directories":{}},"0.16.2":{"name":"cherow","version":"0.16.2","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.44","@types/node":"^8.0.56","coveralls":"^3.0.0","cross-env":"^5.1.1","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.0","rimraf":"^2.6.2","rollup":"^0.52.1","rollup-plugin-buble":"^0.18.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","ts-node":"^3.3.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"83b44f787f7dc7782719e88cb9efe4adc73315e1","_id":"cherow@0.16.2","_npmVersion":"5.5.1","_nodeVersion":"9.2.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-9nnWHzj2yP9ES+bd1QOkSCXpVjX5bnmTG9xcvMs4ouMx/8AZksaJmCjn1chNMDcSk7S4TcrGKrCENE4mAI5E/Q==","shasum":"8b6009b26105f1e11fb6005219878f1f08b20aaf","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.16.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEpZWZWdrdnJVgCYizTp12Dg+y776e0g45z8SFn4Lo+eAiAhw4xfSlKrrZy+G5uQyswGSLHA3ij2IvfcX95zXhYm0w=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.16.2.tgz_1512866423223_0.559400197584182"},"directories":{}},"0.16.3":{"name":"cherow","version":"0.16.3","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.44","@types/node":"^8.0.56","coveralls":"^3.0.0","cross-env":"^5.1.1","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.0","rimraf":"^2.6.2","rollup":"^0.52.1","rollup-plugin-buble":"^0.18.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","ts-node":"^3.3.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"d56f9dd2c8c1fedfcd039ba0710377437b602a37","_id":"cherow@0.16.3","_npmVersion":"5.5.1","_nodeVersion":"9.2.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-IGq3OVfGJWQSjSwt2qyLYVz7VXC/Ad6ag7Uf0rCeIg8UXrW1mEEhyzy7sITc4NDF/07zayixHXvdrTlrxB1TcA==","shasum":"9360dea16667242d4ca1f78c862b82a86de1a471","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.16.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHkBVaA/iClDFNEVUagEvYKpZmSQmZ0M35/j7nDUV7AsAiEA8tvPfvumwcF/xC1diVkJGqP/A38PLoka6l75OTabc5Y="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.16.3.tgz_1512880428193_0.0033758876379579306"},"directories":{}},"0.16.4":{"name":"cherow","version":"0.16.4","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.44","@types/node":"^8.0.56","coveralls":"^3.0.0","cross-env":"^5.1.1","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.0","rimraf":"^2.6.2","rollup":"^0.52.1","rollup-plugin-buble":"^0.18.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","ts-node":"^3.3.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"f4b1f699b143778aa900ff58f026bac27893d299","_id":"cherow@0.16.4","_npmVersion":"5.5.1","_nodeVersion":"9.2.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-SvpjOdZrtBgOfAP18xxjuY/yeox4cdWjCTuTjJ+i/bxR4t2gvUteqPwL+LjAWCANVfM9weyRn2OUhkmM808zhA==","shasum":"3ea2fe6009394a0ed97a1d14fa36275ef81f61ed","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.16.4.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC+gZrabCafYhGbUspzURfVQSvwxT2EJqQyjyFdFVrRwAiEAnSyWXvG2HIMFCdyOzirp+KsDWuVLKuGj85pkJPBIt3E="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.16.4.tgz_1512882000285_0.0015612156130373478"},"directories":{}},"0.16.5":{"name":"cherow","version":"0.16.5","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.44","@types/node":"^8.0.56","coveralls":"^3.0.0","cross-env":"^5.1.1","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.0","rimraf":"^2.6.2","rollup":"^0.52.1","rollup-plugin-buble":"^0.18.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","ts-node":"^3.3.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"f7def32151a3dbc3bca22c7b73350f2b27fa15e9","_id":"cherow@0.16.5","_npmVersion":"5.5.1","_nodeVersion":"9.2.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-nwRMOZ0R1W149tq7b+EWTFz3kxTXtOaOPIx4i2IMa6In9+tHw1bSdAyITOzDt/mhuoR3rnm52/LGxLE1wutYew==","shasum":"da32169c26d5ed1002674ad5c136a2c1326aa3ba","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.16.5.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF8JhKwnP7dHOmd81jwZ6+dpkdXI+fNJ9HIzHYH0VmPsAiByUdxDHgX6p+W5sAWuxpi60OYolAfhQm6UQ8VOwBAp7w=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.16.5.tgz_1512890155018_0.17454907624050975"},"directories":{}},"0.16.6":{"name":"cherow","version":"0.16.6","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.44","@types/node":"^8.0.56","coveralls":"^3.0.0","cross-env":"^5.1.1","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.0","rimraf":"^2.6.2","rollup":"^0.52.1","rollup-plugin-buble":"^0.18.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","ts-node":"^3.3.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"fa8e90a1f06122ee1357a25c7420f4dddd2945aa","_id":"cherow@0.16.6","_npmVersion":"5.5.1","_nodeVersion":"9.2.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-Lqau63Cfod8KvnNkkdihfMjC4SVQ4p+UK/HVRWXvhN20NsHH1tN2k2X/UG6I7QmVfweiAvdwuYgbPoBIkvsx+A==","shasum":"99f2142bae193c8673d1286d94480353687e00c8","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.16.6.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE941vA9gV3zmTO+HW9SyI0Greyx7kS45kA7Fy/Yy9rrAiEAzhrlnf1MHkIm7rkGfM3pUhYG6XUriIvHvozOlwSVEY4="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.16.6.tgz_1512902134735_0.6496836738660932"},"directories":{}},"0.16.7":{"name":"cherow","version":"0.16.7","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.44","@types/node":"^8.0.56","coveralls":"^3.0.0","cross-env":"^5.1.1","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.0","rimraf":"^2.6.2","rollup":"^0.52.1","rollup-plugin-buble":"^0.18.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","ts-node":"^3.3.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"615b709dc0663d9673e53242a6cb3c5fecb4cbe8","_id":"cherow@0.16.7","_npmVersion":"5.5.1","_nodeVersion":"9.2.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-yBBKGp+t9Pun09RGa//AnYLC8+MYmlEai3DrcSsVQ/x7TWxM5jAqslNkvpV86mCu/54zjxfluag9g9G5Rc90YQ==","shasum":"59825e1a08c19d563362543c7491d66809ab9051","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.16.7.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCbod/TdtrDVjU+CAghfYMvZIG1hVx9YX9Tfuyb2I5Y9wIgcIXWw/VXNqe9mYpviXUiGCnlSgDCMINK4iMzLdKaiuc="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.16.7.tgz_1512984327425_0.9308270832989365"},"directories":{}},"0.17.0":{"name":"cherow","version":"0.17.0","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.44","@types/node":"^8.0.56","coveralls":"^3.0.0","cross-env":"^5.1.1","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.0","rimraf":"^2.6.2","rollup":"^0.52.1","rollup-plugin-buble":"^0.18.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","ts-node":"^3.3.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"5452139bda470a58833a05b78a710b7f91c3e2a2","_id":"cherow@0.17.0","_npmVersion":"5.5.1","_nodeVersion":"9.2.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-LOhVZLr6sKDXu0bkA/rPV269LP67K6bAwFD6OzthSB0umvoFF8qVNETw0Cq4yWxOuJXi4t7JGJ4l3qNsH+cHag==","shasum":"6df9563bd13d3a44b791e016c4e3e65cab71c427","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.17.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICrrwlRUYIyM73UGo7lKznYqrNhu6D9szUEKQv91cK1qAiEAwuH2bKrTo5LFmZq2dhtoXqvA6Zc9ptyb6zeY1rBeqRM="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.17.0.tgz_1513059503878_0.3313689553178847"},"directories":{}},"0.17.1":{"name":"cherow","version":"0.17.1","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.44","@types/node":"^8.0.56","coveralls":"^3.0.0","cross-env":"^5.1.1","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.0","rimraf":"^2.6.2","rollup":"^0.52.1","rollup-plugin-buble":"^0.18.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","ts-node":"^3.3.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"5452139bda470a58833a05b78a710b7f91c3e2a2","_id":"cherow@0.17.1","_npmVersion":"5.5.1","_nodeVersion":"9.2.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-dA2rMAymnZhxZNxPbYzhFXhk5p0WnRAhDJ2HkuYheae3zX5b8ZhMHlHjH6AKwkmyHnC7cOukhI0dQgK+Jk8AkQ==","shasum":"a803417bc23d662cfae30a39fce12ca68d3aef67","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.17.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDc+wRb6H9rjA9AqUxwyaNRDQdq9KYOsidJZ59aHOaxawIgPtDiKZrswBNaUNCmsJ4CNLWf4idlQ/fNtF8z+9jqaO0="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.17.1.tgz_1513063512297_0.617420467082411"},"directories":{}},"0.17.2":{"name":"cherow","version":"0.17.2","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.44","@types/node":"^8.0.56","coveralls":"^3.0.0","cross-env":"^5.1.1","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.0","rimraf":"^2.6.2","rollup":"^0.52.1","rollup-plugin-buble":"^0.18.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","ts-node":"^3.3.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"cd082949414f3ea6bc4d2e881263cf4c6ab2d603","_id":"cherow@0.17.2","_npmVersion":"5.5.1","_nodeVersion":"9.2.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-JjkRB3UbuiTd4EBq+Jn60txD7L/3qvA5t6yUCwnSVzTt6DKVov2Qvg1apylK8J4emFzLwnuEbxvZ/ucdExqGTQ==","shasum":"8e08b16d2d52f2253c074de2089049ca7d0a8f5c","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.17.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICDHPshlJM9yzMcpSB6qM6GXug6d62JQsQKlCbUReGRzAiAW5+x9wxpTNoznkGMsXs5HCW68C+Dn+3bCBufwT0K+nw=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.17.2.tgz_1513071993755_0.6988214706070721"},"directories":{}},"0.17.3":{"name":"cherow","version":"0.17.3","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.44","@types/node":"^8.0.56","coveralls":"^3.0.0","cross-env":"^5.1.1","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.0","rimraf":"^2.6.2","rollup":"^0.52.1","rollup-plugin-buble":"^0.18.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","ts-node":"^3.3.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"2bface4328bd3ad69dbb6ed155ad56901679bf8e","_id":"cherow@0.17.3","_npmVersion":"5.5.1","_nodeVersion":"9.2.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-C7kas51xz9AAfNgU10YV+jkTdaF7eQfiz6/7ouqcGVkd9SnXuKk2AZO20EN5UdkROFnwPvV2CTLFjaKnEtrGyA==","shasum":"8eacb08124e42d1213edce5e4dfa5e45561aeb80","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.17.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD1jwrozaRtHa4rHj5eUdpgaS5QbcJYuTY+ASYdjoygIAIgSs6DSkb5YaacsrHRx0/yC25yDFQk8AD59u39UzfzUAc="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.17.3.tgz_1513082561117_0.12245045439340174"},"directories":{}},"0.17.4":{"name":"cherow","version":"0.17.4","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.44","@types/node":"^8.0.56","coveralls":"^3.0.0","cross-env":"^5.1.1","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.0","rimraf":"^2.6.2","rollup":"^0.52.1","rollup-plugin-buble":"^0.18.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","ts-node":"^3.3.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"825398721aa87ba0825af5d79c164e52e0277859","_id":"cherow@0.17.4","_npmVersion":"5.5.1","_nodeVersion":"9.2.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-9Sx2n4pC+0ZX7PeoKSUPWX3T3xoWui+f47Q0T0QqfOcid9IoUPPfrRnSGQrgN0WJw5NWJNm5gMZQdARF8eFX9Q==","shasum":"abc571e79d1da11d385cb8effe47a2837fa3128a","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.17.4.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC8nu7I62rX9Ruq1GGxjn+Glq7NPk6qq0LViDm0/c+SowIhAOcfAYUbccPT7CPUhO0rXj+78jHl5VvXhEQb812Ehfx0"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.17.4.tgz_1513122949284_0.24820916028693318"},"directories":{}},"0.17.5":{"name":"cherow","version":"0.17.5","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.44","@types/node":"^8.0.56","coveralls":"^3.0.0","cross-env":"^5.1.1","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.0","rimraf":"^2.6.2","rollup":"^0.52.1","rollup-plugin-buble":"^0.18.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","ts-node":"^3.3.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"2b80cce48b16d0a77e35d4e1166c48267f659053","_id":"cherow@0.17.5","_npmVersion":"5.5.1","_nodeVersion":"9.2.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-V1Ql62PDuJ607U1NGGtMZuYC74bmZXkPfvmrRvE3Kf19PQXSmZVgJt1IiHi3kWeA54qOfjXf4y/XsrCB4Wcrgw==","shasum":"73c78946ec840277e37c7367305174c0c8ab820a","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.17.5.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDMFGdTLt5+cilpbYnc1+BIF9e/FRsuUFjmqt2gSS9n0wIhAOnuQUUd34B0/jwC+JojlUAkL55gRJBude6AR+9lxAbc"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.17.5.tgz_1513144927081_0.7078309811186045"},"directories":{}},"0.17.6":{"name":"cherow","version":"0.17.6","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.44","@types/node":"^8.0.56","coveralls":"^3.0.0","cross-env":"^5.1.1","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.0","rimraf":"^2.6.2","rollup":"^0.52.1","rollup-plugin-buble":"^0.18.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","ts-node":"^3.3.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"f6e4c6f34fc6c95f5b6f1269e341822a0a8b6557","_id":"cherow@0.17.6","_npmVersion":"5.5.1","_nodeVersion":"9.2.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-BWwKOlsibF45WQboLAFFI2RphWXFtU/JGq5NU8+6zoWobWqWw+gGslB3HeOaY2galCmdGdr4tFajK9EHPRPYeA==","shasum":"471f52cfc9e4220289e7265c38100f879b382b5d","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.17.6.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD5uiLfgtkHkjZ+3l8SQNHcTBGXm6Viji57uQLAkSilTgIgRS7Bkgb2UOWi+P5NBGOexL0PIxbpT4QmKJ7evjJzg+s="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.17.6.tgz_1513165529621_0.6121669132262468"},"directories":{}},"0.17.7":{"name":"cherow","version":"0.17.7","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.44","@types/node":"^8.0.56","coveralls":"^3.0.0","cross-env":"^5.1.1","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.0","rimraf":"^2.6.2","rollup":"^0.52.1","rollup-plugin-buble":"^0.18.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","ts-node":"^3.3.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"523680d0d6a5f0353334f36d566f635b4a9a58d1","_id":"cherow@0.17.7","_npmVersion":"5.5.1","_nodeVersion":"9.2.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-F/IgJDzqvqaHEVWMK9PzeIcS4CYPNv2tW+vn6RQ4GojCQdjjgmHHYZaocwiIvFupBjg0mmh2zZ0inAFPWc0j4w==","shasum":"3457b33769d9c1a2fce26773441c6853c0f4e593","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.17.7.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHzPXf/qxro/VFugN5yF0XV3TQoY/LbNVuo9wxIvtHBSAiEAp5QHyYaNWsqyEBlXr27iUhA77jis4TE6bw4+iW7H4Zo="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.17.7.tgz_1513175906552_0.9504475158173591"},"directories":{}},"0.17.8":{"name":"cherow","version":"0.17.8","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.44","@types/node":"^8.0.56","coveralls":"^3.0.0","cross-env":"^5.1.1","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.0","rimraf":"^2.6.2","rollup":"^0.52.1","rollup-plugin-buble":"^0.18.0","rollup-plugin-uglify":"2.0.1","test262-parser-tests":"0.0.3","test262":"git+https://github.com/tc39/test262.git","ts-node":"^3.3.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"fd84b4411ba18203e270112e13c96545e00f6590","_id":"cherow@0.17.8","_npmVersion":"5.5.1","_nodeVersion":"9.2.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-eXB1+RCBp4NmYnD61aLgUIO7yGmgT/9s0OvGn90WP4raYj6vurCldUJ7THsbtoI7Es3Txe9fVTUE/KAVOur9oQ==","shasum":"fd504d564e967e76b2fd52b313d2a4b29b068f1f","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.17.8.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICBqB7Vt9V3fvjB70nWes4VPQBaUUpVo/f6TEFtsCUbSAiEA6rtjRdha50/HxqGwC8theAHk5iHuL6SDyK/H/c9Mps0="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.17.8.tgz_1513239666623_0.8925220582168549"},"directories":{}},"0.17.9":{"name":"cherow","version":"0.17.9","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.44","@types/node":"^8.0.56","coveralls":"^3.0.0","cross-env":"^5.1.1","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.0","rimraf":"^2.6.2","rollup":"^0.52.1","rollup-plugin-buble":"^0.18.0","rollup-plugin-uglify":"2.0.1","test262-parser-tests":"0.0.3","test262":"git+https://github.com/tc39/test262.git","ts-node":"^3.3.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"3696845cfbaa415b739f1f3fc23f0e4562874713","_id":"cherow@0.17.9","_npmVersion":"5.5.1","_nodeVersion":"9.2.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-Ox/5UWgM5VdIk/c2FJ2OO8VbMlQ5xBL14SkYc9uwmbXu1PIHKQDVjK0IctihsJeIGHZriFDLBl4EHVjN19Qg3A==","shasum":"8038c4f18a306b1e15993a94cc779cadd14264e9","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.17.9.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDLRsL7gUl2xlA1UOKSN8echr25JAZw9WNo2KsuZE6CxAiARF3pZ0s5u63lkQl3s4aGwwp82wB1Tisx7IiT2+IzX6w=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.17.9.tgz_1513339941667_0.8234926760196686"},"directories":{}},"0.17.10":{"name":"cherow","version":"0.17.10","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.44","@types/node":"^8.5.1","coveralls":"^3.0.0","cross-env":"^5.1.1","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.0","rimraf":"^2.6.2","rollup":"^0.52.1","rollup-plugin-buble":"^0.18.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.0.2","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{"snap-shot-it":"^4.0.1"},"gitHead":"18f569f1a1940ab013975a28027d6d1fa021884a","_id":"cherow@0.17.10","_npmVersion":"5.5.1","_nodeVersion":"9.2.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-KhKVoF2pMPXGasLhqCCR5T0IjUxOncQwp/WV0kXJhADIHfHwToptQ+bSJ6VF2QNZKNpn6PtJLkm2LoCN6u5GlA==","shasum":"e75b4225f8f7849150c7b5df00e068e2c599d20b","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.17.10.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCXfCm8g0sBQWMUUf65A6pn1W9HkBvL/ItC5D8rcleNlwIgSK3dJxzShkZfdnDnEF+C1ENu25NP1G6ZJsdPlNL/wek="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.17.10.tgz_1513417126025_0.2062362467404455"},"directories":{}},"0.17.11":{"name":"cherow","version":"0.17.11","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.44","@types/node":"^8.5.1","coveralls":"^3.0.0","cross-env":"^5.1.1","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.0","rimraf":"^2.6.2","rollup":"^0.52.1","rollup-plugin-buble":"^0.18.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.0.2","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{"snap-shot-it":"^4.0.1"},"gitHead":"18f569f1a1940ab013975a28027d6d1fa021884a","_id":"cherow@0.17.11","_npmVersion":"5.5.1","_nodeVersion":"9.2.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-IDHp77Rwsrvpdm9z0smVFW3xrnDifjDmRQ5fyqR3nQ5NGLOLHujdPwgSRAKTj+StqmpqWbc2AKsbgEyFCuQUiw==","shasum":"678d7c6b522a7cd434e59df56756890f3c8c6fc2","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.17.11.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAw5gdxLMYLGjPnPlg0E1yBhIqtormf3coT4sPLTX2GFAiEAmQFOz05W+iVMHDGCiTmmehpWbRrqrD2jzmDfbKXrims="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.17.11.tgz_1513417712762_0.05124572338536382"},"directories":{}},"0.17.12":{"name":"cherow","version":"0.17.12","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.44","@types/node":"^8.5.1","coveralls":"^3.0.0","cross-env":"^5.1.1","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.0","rimraf":"^2.6.2","rollup":"^0.52.1","rollup-plugin-buble":"^0.18.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.0.2","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"1bc10ce748315f9e484c3ff6cc39510d668fdc77","_id":"cherow@0.17.12","_npmVersion":"5.5.1","_nodeVersion":"9.2.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-X9V2VEPD2a8vQXBEKDFUpbLhZeJEfvgmsybQate5mTX4VpxvJlf7NG4NoHD/Afch8wft9OqK/a2URJasffLZJw==","shasum":"857caee035f8db7da457503013539764be334306","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.17.12.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEFZG+qGdBgsXPlzlWzkExsbVHZZJpBo6WIgrPs8+i/sAiEA/uQFaOWh4pV6FMvazsxT6mBUPYqq2VKPK93fs7a0isY="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.17.12.tgz_1513556741294_0.8037797950673848"},"directories":{}},"0.18.0":{"name":"cherow","version":"0.18.0","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.44","@types/node":"^8.5.1","coveralls":"^3.0.0","cross-env":"^5.1.1","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.0","rimraf":"^2.6.2","rollup":"^0.52.1","rollup-plugin-buble":"^0.18.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.0.2","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"15d8344b5dc57649212889998d538956fe069195","_id":"cherow@0.18.0","_npmVersion":"5.5.1","_nodeVersion":"9.2.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-7kIv3F7ERRFUeochU4Io+SYhyXLR9n89oQPMMoowWDwExBAnB+gE7xbZBaG+J+nFIJTaiBaI2nyot3202M2yuA==","shasum":"9a44fd3fdf6bbf4c3747f0a1375f0954f58ec61c","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.18.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEwixAJbTIGnJlYVyHYKfRBOCtgBxT8IpYNCU3qNOVmiAiEAvnUTE1qKuuwVjthzPe93pGpmLgwqDEPeg0mFF0Jn6kw="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.18.0.tgz_1513605162520_0.26340761804021895"},"directories":{}},"0.18.1":{"name":"cherow","version":"0.18.1","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.44","@types/node":"^8.5.1","coveralls":"^3.0.0","cross-env":"^5.1.1","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.0","rimraf":"^2.6.2","rollup":"^0.52.1","rollup-plugin-buble":"^0.18.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.0.2","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"f0ce9642d403620d4e1b6393594726a875073cc3","_id":"cherow@0.18.1","_npmVersion":"5.5.1","_nodeVersion":"9.2.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-Cg5Bf7KhB/vZN21rOEx28QNUV99QIBP0R6h0lztenF5Pb5qyyJ647nGz4ImmHgqIW/djlxTlE5G6SmCyy9OxDg==","shasum":"893faf77a61fe51d940461bacb9f61c3d9739d63","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.18.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDNlE5+B8G2QFS1AWXvauotR43yEL/RF5jmMAMSZSM80AIhAP7oThx0sOhJRGCjuTffDuY5DAbl1G1nSXVT7yg1UQci"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.18.1.tgz_1513673477937_0.05770219559781253"},"directories":{}},"0.18.2":{"name":"cherow","version":"0.18.2","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.44","@types/node":"^8.5.1","coveralls":"^3.0.0","cross-env":"^5.1.1","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.0","rimraf":"^2.6.2","rollup":"^0.52.1","rollup-plugin-buble":"^0.18.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.0.2","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"8f2cd72024a3179ff3e792cc2ddf1cd35874652d","_id":"cherow@0.18.2","_npmVersion":"5.5.1","_nodeVersion":"9.2.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-oJHUDFsdwcCJE9WZxz0NZIM1tPHypehIU1iilmX6QeGx+M0JEJoZG8o3xFbdQRTfGWUb0zrRYdzm3i9my7GHGw==","shasum":"182dac421410647fb43ff7711146c12149caf4a7","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.18.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIChcMl2IfddeabeQ2WSfEYtFkZZcB/fo439JffWMNjK+AiBiw5JXyiUmAOAxuMqWom/o9nTa+/iI8IhzHML3yL7CDw=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.18.2.tgz_1513691199228_0.31443807389587164"},"directories":{}},"0.18.3":{"name":"cherow","version":"0.18.3","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.44","@types/node":"^8.5.1","coveralls":"^3.0.0","cross-env":"^5.1.1","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.0","rimraf":"^2.6.2","rollup":"^0.52.1","rollup-plugin-buble":"^0.18.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.0.2","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"c9181fdb7adf429843649728e4403553aeda327a","_id":"cherow@0.18.3","_npmVersion":"5.5.1","_nodeVersion":"9.2.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-iZUsum7ejEtrcX9PHaFKfTZadGQQXH0MLjp9OwVrNJAzn57t1NPooKfgUD00LdVXC6X1VLcAwhBiMO5Jg7q+fA==","shasum":"0290907c28cb345d3e0b9465d17be6d61c4c7bc1","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.18.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDe6Hl7JREMscKhn1T0UXI2HRfeR1Zs0T/T2AzPb16DVAIhAMsqwym/POJc+AQPDwkPWVIkiD04gTkpNq1bR4mojaly"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.18.3.tgz_1513729993562_0.16535121947526932"},"directories":{}},"0.18.4":{"name":"cherow","version":"0.18.4","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.44","@types/node":"^8.5.1","coveralls":"^3.0.0","cross-env":"^5.1.1","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.0","rimraf":"^2.6.2","rollup":"^0.52.1","rollup-plugin-buble":"^0.18.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.0.2","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"4672b79a270d61cac731c66559c10737efecd840","_id":"cherow@0.18.4","_npmVersion":"5.5.1","_nodeVersion":"9.2.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-ElJLxpEdzEJM4gEdzS5MgQqpjelIjvW6oxGBehqTUPXIi88XnHSUIQodg6RG72CTxPn8P72zrqe+O6FYDXchRw==","shasum":"a321a3cf37266b954a0ea3ba274ba36d112013f9","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.18.4.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDMfRr8kqBT70ds+2Bx7vgNmTiUAmu2MwjZuWXC4YWFZgIgezKOGoMfIaDzXimY5Vmuayx8tVtN4OhUJcePhMyUg0I="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.18.4.tgz_1513733750522_0.335192192113027"},"directories":{}},"0.18.5":{"name":"cherow","version":"0.18.5","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.44","@types/node":"^8.5.1","coveralls":"^3.0.0","cross-env":"^5.1.1","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.0","rimraf":"^2.6.2","rollup":"^0.52.1","rollup-plugin-buble":"^0.18.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.0.2","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"4672b79a270d61cac731c66559c10737efecd840","_id":"cherow@0.18.5","_npmVersion":"5.5.1","_nodeVersion":"9.2.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-yD2WJefUXI/5JcPFJrDcs9OjGLnlAywlfNJ0WrqfzqKJg84wmZ6VbmOe7ldZqPw+IlKmtuzKMFXBisvdbVGyPg==","shasum":"b2ebee56f5804b58ce801aabb42d9b6e2a208fc3","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.18.5.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCnFTg4NRibrwPRIK8YMuuzZlE2Jak59POZKJyftnuYwgIhAMKkCgg3eyogMXQhkB8tV93fWhQm0/qS6PTuV1fYoqFJ"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.18.5.tgz_1513765865689_0.12216918705962598"},"directories":{}},"0.18.6":{"name":"cherow","version":"0.18.6","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.44","@types/node":"^8.5.1","coveralls":"^3.0.0","cross-env":"^5.1.1","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.0","rimraf":"^2.6.2","rollup":"^0.52.1","rollup-plugin-buble":"^0.18.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.0.2","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"0b2f0b5713c961734d91112ee741058600d2641e","_id":"cherow@0.18.6","_npmVersion":"5.5.1","_nodeVersion":"9.2.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-C0RPZAKVWjN4nJ8ObovbcnH0lpLa9XHf1j7pC0sTXJWOxfFKwFcPm7we3I+IOl3HlndL8TbWBNUk8NK2oQ5S8w==","shasum":"bd9f16a6cd07fe972c7b4826c937c0753a2e66fc","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.18.6.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCVq7fQAL119HxPaSEOga4KyNFwcgy/8tlPTgXug1AGpQIgEicK3fU6jlLcs9Yn7fFV3Qyye5R+obhoogHI/NsiCgw="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.18.6.tgz_1513818527862_0.713505869731307"},"directories":{}},"0.18.7":{"name":"cherow","version":"0.18.7","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.44","@types/node":"^8.5.1","coveralls":"^3.0.0","cross-env":"^5.1.1","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.0","rimraf":"^2.6.2","rollup":"^0.52.1","rollup-plugin-buble":"^0.18.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.0.2","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"b274aa8376f9d1f89e0840a4ec944d167d14ec52","_id":"cherow@0.18.7","_npmVersion":"5.5.1","_nodeVersion":"9.2.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-EfJ/QeYRMzMa4PblKzupB4kabyukzfur6t6Tp1w83SvxmwM0r87UlZLnbwrRksesx6ksef5nj9/hh04kIhqKdw==","shasum":"949795a78cd8a963b45832268d29ba5003f8a771","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.18.7.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGrATPEjwBBHtiVMXE/m/f1zaHP8i9bSWs/U9opcL9EnAiBxBBQZxpXRBsVtxt1sG+eh8X0TSC1CUKGrS2QWVTYBLw=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.18.7.tgz_1513851567886_0.6236656403634697"},"directories":{}},"0.18.8":{"name":"cherow","version":"0.18.8","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.44","@types/node":"^8.5.1","coveralls":"^3.0.0","cross-env":"^5.1.1","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.0","rimraf":"^2.6.2","rollup":"^0.52.1","rollup-plugin-buble":"^0.18.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.0.2","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"8eb1fcc1cbd7bb9c926305a194484e8af52c1966","_id":"cherow@0.18.8","_npmVersion":"5.5.1","_nodeVersion":"9.3.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-pXs1RjkiCq+xh1GbF1BYTYHUGcm74ZZHm/nBqBu85Uw7i+d9J0tyiqz4H/A/JmT79DMubV5JAa9bbhEs/6/OKQ==","shasum":"51b113e997572e35e3bd64e21a6fa7f09b1c3681","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.18.8.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICgU8APCzX/chI8tt8Z/J4cAnbzdZhvetzNW/6FYZPHRAiEA60tYg6b1x5DBFVDqieTu+Uu5Tx4VIFeToGRNyg/GJkE="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.18.8.tgz_1513928877283_0.015908207278698683"},"directories":{}},"0.18.9":{"name":"cherow","version":"0.18.9","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.44","@types/node":"^8.5.1","coveralls":"^3.0.0","cross-env":"^5.1.1","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.0","rimraf":"^2.6.2","rollup":"^0.52.1","rollup-plugin-buble":"^0.18.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.0.2","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"4ca2eaf3bcec9c7198f7cce1d4ef884d93863c84","_id":"cherow@0.18.9","_npmVersion":"5.5.1","_nodeVersion":"9.3.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-aRO/hJ8V900Uibfkq7DLhequ33dAodw5aPMi63ixrTohE/mmcZR00Scx8dOJeFRSTJgH8XZajZY2aAs8hJYe2w==","shasum":"c0caa295d2420ca3e776f1859266bfff9802219b","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.18.9.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDCOXMGPKuZ4YoRoDBfHUDIYsNwle1iNwMxtxQJ4q/ZBAIgJlRJ3bsZFyVOOHXeyi6DyMyiQWxTqWadQDx7INtuaEg="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.18.9.tgz_1514036878642_0.5093330345116556"},"directories":{}},"0.18.10":{"name":"cherow","version":"0.18.10","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.44","@types/node":"^8.5.1","coveralls":"^3.0.0","cross-env":"^5.1.1","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.0","rimraf":"^2.6.2","rollup":"^0.52.1","rollup-plugin-buble":"^0.18.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.0.2","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"5b848db95d50e0f5de31573a11bb1a68f1750126","_id":"cherow@0.18.10","_npmVersion":"5.5.1","_nodeVersion":"9.3.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-SUW9A6uJDWdISTWKPkWDQO1ZTPqMDj0f4yU4bjyTSBW0fAZ/hnpxg4LH22OJ6yStoQUJp5hugO8Sxl/OFC6oMA==","shasum":"30ac506354f22e3aab562cb1a8b4b16dad7da0c1","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.18.10.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGfIIXJeaI1CfkXkiLiDg1Nen8OBUojyGjb3JqZCRICfAiBStnul/JpKU6B/mN9KIru/7tcu9xzmqI4hw6XpQCY4Gw=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.18.10.tgz_1514103773651_0.9408252520952374"},"directories":{}},"0.18.11":{"name":"cherow","version":"0.18.11","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.45","@types/node":"^8.5.2","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.53.0","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"e91aa52f87e51fdbfd917397b57b604bcd005a6b","_id":"cherow@0.18.11","_npmVersion":"5.5.1","_nodeVersion":"9.3.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-v2LRctoWtPFVRHop8T7tCpren2l3nmJEKowI4DQby4KR+IPliyC6PZblM3JMNUOcCc/T5+Nt133XEfVARpLAyA==","shasum":"e29a1f3e52e0402c23338214b823b0959fdcd404","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.18.11.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGUlb7pp3ji5vg0/e7aFQ744OAyh6BF62z9nx025sLg3AiAhoSvB5wfY1cQXl7/WRLpd6pU4/P0DZyqn7hI9QGEFPQ=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.18.11.tgz_1514114455090_0.008725765394046903"},"directories":{}},"0.18.12":{"name":"cherow","version":"0.18.12","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.45","@types/node":"^8.5.2","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.53.0","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{"babylon":"^6.18.0","estraverse":"^4.2.0","jazzle":"^0.9.12"},"gitHead":"76f360f0f8f1791e576a434c46c8978f30449367","_id":"cherow@0.18.12","_npmVersion":"5.5.1","_nodeVersion":"9.3.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-PAWNdwS59lDDOqPeAbjSat7AGaaptqlN26lnCPRiofs/fjO9L34axFxQTK4z5MlDMheCUkt1BPNf8crHxHVYUg==","shasum":"e62d5a53b90ddf5175316e86fffa7233ab9c9661","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.18.12.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIATWIlUiTWKDAmiNDtL3WN5/BBmrHfqxM2MSCzLyy4HpAiBV1WzbuqoypPPkzb+jIHc2catqvP4aQpZMAQkvGG0K7Q=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.18.12.tgz_1514367480186_0.95936011034064"},"directories":{}},"0.19.0":{"name":"cherow","version":"0.19.0","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.45","@types/node":"^8.5.2","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.53.0","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{"babylon":"^6.18.0","estraverse":"^4.2.0","jazzle":"^0.9.12"},"gitHead":"25eea52cc6d2b75e66e9c7ead00457ef631d4b33","_id":"cherow@0.19.0","_npmVersion":"5.5.1","_nodeVersion":"9.3.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-0v03APf3hA9cIEMeY2WkWPwrk4a2kaELy7dZBh/p55WMJN1dIMpR67bpBwiYJbFG0zt4AHHsHGnr+P7N0DKnvg==","shasum":"3988b9c084ea3e9efda1e31c2bbb266c5773670f","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.19.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCqyd5KyaFq/pB8KuTd1ZZbigr5qIdti4P/3wGFFfhuUQIhAKsx+Aa7DxqN0uQIGVUINjpdwk0XonW5hNAFAXAJcjTJ"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.19.0.tgz_1514377800079_0.11607573390938342"},"directories":{}},"0.19.1":{"name":"cherow","version":"0.19.1","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.45","@types/node":"^8.5.2","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.53.0","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{"babylon":"^6.18.0","estraverse":"^4.2.0","jazzle":"^0.9.12"},"gitHead":"a07be0b3e967caf20c039d2e0a881fc18856dd06","_id":"cherow@0.19.1","_npmVersion":"5.5.1","_nodeVersion":"9.3.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-yB65AXrJQu/u6+d2LL3rpBtkKKJ4RhukRjVO8pevlcmaJAjnqVRqs2A3+BIB6kHEV4DSz9UXMj6AXH/4dHoYDg==","shasum":"ad5a99285188f795c9b30b61e484d7c424ff988c","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.19.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC6K8Cxpn7t3LSQ9Acs7HTlHL5ss5D7aWSeRTkysjmIigIhALpD8aU6zD+/fNdkDpHt+5use5QKQI2EWt1lz/A9daZP"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.19.1.tgz_1514379997448_0.42490216880105436"},"directories":{}},"0.19.2":{"name":"cherow","version":"0.19.2","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.45","@types/node":"^8.5.2","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.53.0","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{"babylon":"^6.18.0","estraverse":"^4.2.0","jazzle":"^0.9.12"},"gitHead":"63f959746cdface097259458afe59dc4af2a2a27","_id":"cherow@0.19.2","_npmVersion":"5.5.1","_nodeVersion":"9.3.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-0xS0dS6yn7JSPaJJnAKnUsSYfA5uc4Ag8hflr9gn7fJwXySjRV3Hu4DbsETCYR9LgNFzXqRs1tN9PSSG6+CFeg==","shasum":"0892152d1ea7dca120756925beb346b64cc12c77","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.19.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDmUVkQvwz2iLK8aGSmgUzZOUEP1VOYSAepSCh8cgw9FQIhAKN5u9tNKg+M2yW6WPMfeQiC7o19QuEoBrevonN5r5LG"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.19.2.tgz_1514386867148_0.14279800071381032"},"directories":{}},"0.19.3":{"name":"cherow","version":"0.19.3","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.45","@types/node":"^8.5.2","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.53.0","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{"babylon":"^6.18.0","estraverse":"^4.2.0","jazzle":"^0.9.12"},"gitHead":"63f959746cdface097259458afe59dc4af2a2a27","_id":"cherow@0.19.3","_npmVersion":"5.5.1","_nodeVersion":"9.3.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-Fawx+M83f7MM6Rl21lYwVtSeI1n+dSJvGXPHDm+KVEAjTbOkGgakhEJVGuxdcpTMFyBHcZEpkRASonWaRdRyeQ==","shasum":"3b14deeb9583e8665d21466512748d38bbe3e8a7","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.19.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBi8PL+yKsoroJIG0xYFNO8fLD5xNNOHzmcEAj0PmrnfAiEA/LQe+HU8o+3VJrPtmjL8RfkSHHt7EUdoLwHgS1/IQB0="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.19.3.tgz_1514417107612_0.7766907489858568"},"directories":{}},"0.20.0":{"name":"cherow","version":"0.20.0","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.45","@types/node":"^8.5.2","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.53.0","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{"babylon":"^6.18.0","estraverse":"^4.2.0","jazzle":"^0.9.12"},"gitHead":"db6c8a6a617ccffa48b260d35d04a29b786615ea","_id":"cherow@0.20.0","_npmVersion":"5.5.1","_nodeVersion":"9.3.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-inTs+MqNUmgCbd6Gfpv5IJ3Q4xDpOAunAic24f9aFr4wuvmnAXOy1vZJ6yRsm/RafKRRkGOP/kc9ZDI8CsuM6A==","shasum":"4bc4c25089f145044eed19b92c3bee483efaeb5d","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.20.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFRfSH9okghO1LYAjLqYDUSKbnPIxZvQVdN/2IJRnxm9AiEAzkGqcr/S2ft9Z4u+oy8XOMUKUaFmhZSWKxyhJYXCcXc="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.20.0.tgz_1514426488472_0.2965520340949297"},"directories":{}},"0.20.1":{"name":"cherow","version":"0.20.1","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.45","@types/node":"^8.5.2","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.53.0","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"a9141b5e4deda91df55e57d363f6eca4bf62bdfb","_id":"cherow@0.20.1","_npmVersion":"5.5.1","_nodeVersion":"9.3.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-zTJr/fRO3rOsuVTgIg9/OeBQo5mflLLGgmYtagIxJdKETjkb33tlil4BF5hHA9PmfzztvkZP8BvFobxA5wWXLA==","shasum":"859788a0678f6212a028a8fdf57827ca729d5dad","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.20.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCUCZjnI27Nd2EG/7OKJo+Lr5mzmwf+e+xu/PxEdtJPtAIgBlS/dVRAb6nqSjdtDx7Y/bRhRK4p1bmTsDM7Y/5MYsM="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.20.1.tgz_1514426833734_0.26291226549074054"},"directories":{}},"0.20.2":{"name":"cherow","version":"0.20.2","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.45","@types/node":"^8.5.2","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.53.0","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"5788d6480046a967967bcf3568d9c79329e2df20","_id":"cherow@0.20.2","_npmVersion":"5.5.1","_nodeVersion":"9.3.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-hk4NM/bvKmJkoEArWytrbgKKQmrDRWW3/bqkK1lz7F6oIjFKS3THPHfROXj2oS78uMZcGjLSlM9z1R6Qmk9NGg==","shasum":"b011fd0322696bd3db6c24b7854b21e340a5e8cb","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.20.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEaRkpcWJk1h2MC4icRZfh3ot/XdT//oc8/doQ+mzMoJAiEA/axJKcAPOLgyYZuMwmHntsG+HZ1uMHTzVlsbrbePzUo="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.20.2.tgz_1514478942132_0.5531888785772026"},"directories":{}},"0.20.3":{"name":"cherow","version":"0.20.3","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w","circleci":"npm run coverage && npm run test","appveyor":"npm run build && npm run coverage && npm run test"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.45","@types/node":"^8.5.2","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.53.0","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"1e7e7dd6e0ae778790afd534a5a0c70197c71ee6","_id":"cherow@0.20.3","_npmVersion":"5.5.1","_nodeVersion":"9.3.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-0ss3vnjHVHH5WVH2BKcFoB1BgWtga70lyjPSd8QFbS7Ch4rEPRJ63aWjtuU/z9FlZXS3NEbieCP5/mgD2aUU2Q==","shasum":"0d0480bc37f7e23029388b776cb808021f06a2c6","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.20.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICpimoaxm3I1pv7Gfhvxkd6MfQ08g1eP3SiV7yAAa3XFAiAli7T9JE5pgCrE0k9LrEYX7l6x1aLdqxRAJ05701CTSA=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.20.3.tgz_1514515789313_0.8215091577731073"},"directories":{}},"0.20.4":{"name":"cherow","version":"0.20.4","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.45","@types/node":"^8.5.2","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.53.0","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"e7039cebcfd242e65ddacb67141833d528967f2b","_id":"cherow@0.20.4","_npmVersion":"5.5.1","_nodeVersion":"9.3.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-EIH1NgVZ/3xlLBp27oW2Wj6qRIuA+oiX/lN2Y41vInvzPmVFBz/ihzHo2EDtP/cuBYNkx2flgvUuogpBDS7lMg==","shasum":"d27d0c43eb3a5dd10204bf10577d9cd431cd586a","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.20.4.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCGefmFCqkRa/x9GrD2QK/apEe5y4Kc3k2dxNzfrSXfjAIgXkgpbb6ur+FoBCvzE7AIQKQPF4bs0hK8+cwn1sSpgxk="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.20.4.tgz_1514596340518_0.13594898441806436"},"directories":{}},"0.20.5":{"name":"cherow","version":"0.20.5","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.45","@types/node":"^8.5.2","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.53.0","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"e7039cebcfd242e65ddacb67141833d528967f2b","_id":"cherow@0.20.5","_npmVersion":"5.5.1","_nodeVersion":"9.3.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-6j1TccvJIqHDYlDMusBguyvzbL2v42QpRMv3ZkVs5OMqSPgoynnW892eSs/12Ta5Wuu7HsUwnlzOjP+MeyNggQ==","shasum":"5342c9cb036efe99d80174c98b2ee0d7ba2e1d77","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.20.5.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCkzFSuEpU6nUNFEt6OR6lv2YQerB7PKdomPi0/Mw1CNwIgCnpShHUMlU6S11aJCMXjWP59Rj35pT1Buag9sMBqFxQ="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.20.5.tgz_1514596971687_0.4004492340609431"},"directories":{}},"0.20.6":{"name":"cherow","version":"0.20.6","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.45","@types/node":"^8.5.2","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.53.0","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"eba55012ca2c54eccfc463ae882d4f9cede7418c","_id":"cherow@0.20.6","_npmVersion":"5.5.1","_nodeVersion":"9.3.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-6TSRBuA8YNYM9SKWmotZVYotIfMGoCfwVcANj+m2+AKgz+nenvQe5CpWwENWnH6LsbwVYliyD5a74IZWZaxpkQ==","shasum":"cfbeb7147bcfee7e58d1eb4dd0d523e3653d3316","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.20.6.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAYa/Na9ZJTKftOjGprZdNWAHZ/nuJtNM+ygd/AnN5AvAiEAkjAcBLyUYsmIpUq3RkTzHdnzkIYRaxc961cXSdLESzw="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.20.6.tgz_1514647832592_0.6624336247332394"},"directories":{}},"0.21.0":{"name":"cherow","version":"0.21.0","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.45","@types/node":"^8.5.2","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.53.0","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"349732cb48ffb11fb9419c463b59017c4bf4926e","_id":"cherow@0.21.0","_npmVersion":"5.5.1","_nodeVersion":"9.3.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-7elp8/5pghtC387e/zbkfqAYtj3pA7/LlJ1inNeiW8r/Ccc+4xzDhAlDf40b8Rs+vZOthZsMrQzrLFOTvHQIfA==","shasum":"5f41fbeb79e671817e91c8e8e0c7c0d14ba22f1c","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.21.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDJe+DEQAdia48bfRaPL7MZprbUpJWateIWpiHc11tsdgIgHeM9W4dgO7NtI9iaaJdilW3r78KGLIQSD9vNzJU/qfk="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.21.0.tgz_1514694137217_0.37878981069661677"},"directories":{}},"0.21.1":{"name":"cherow","version":"0.21.1","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.45","@types/node":"^8.5.2","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.53.0","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"893f372a29bf4c2f04e00337eada026e79d9bfe3","_id":"cherow@0.21.1","_npmVersion":"5.5.1","_nodeVersion":"9.3.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-G3S0V525YH7M0lKsGgCKy3qFnNeS23MICORQcutgKSzV/Aze+l2GBwu+2zH5qyRfNHoF/CmbKUsWvv/QmP38vA==","shasum":"a44533b4c7be9257e793d283ac2b39cc98bc4ab6","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.21.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHt9CXrPiC/dHbWyuqFtXtMGYLiP43+7oruoO5L5U7X5AiBV9kLDazwVGetd9y3pvEVUnkGbuJIGOqRTiIY9PQnWhA=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.21.1.tgz_1514696368114_0.3055807885248214"},"directories":{}},"0.21.2":{"name":"cherow","version":"0.21.2","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","prepublish":"npm run build && npm run minify","prebuild":"tsc --skipLibCheck --m esnext","pretest":"tsc --sourceMap --skipLibCheck -t es5 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.45","@types/node":"^8.5.2","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.1.0","nyc":"^11.4.1","rollup":"^0.53.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","rollup-plugin-typescript2":"^0.9.0","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"6843aeb7af5b78081785b0a7b8318977dc5b3a3d","_id":"cherow@0.21.2","_npmVersion":"5.5.1","_nodeVersion":"9.3.0","_npmUser":{"name":"kennyf","email":"kflash123@gmail.com"},"dist":{"integrity":"sha512-y49Cp5Hg66raUkzSB6+16Uueti3qiMOwqKHo72aDPGc/xVPqK70xaZGHZXX7quW2LdviZuYYsK9+3wMpXK25JQ==","shasum":"ada69c664d363307e2ba90736b7c87e2af67d48f","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.21.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAxpyfO7AnvOi2ouZ5A/W6wY5A+QnUCBJ1SMwF2BaKiSAiEAx+1vpWbDKZ3GDp1r3V1nrN0fbI7jJ9V2dF9L+3/B+kg="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.21.2.tgz_1514786376792_0.8485110409092158"},"directories":{}},"0.21.3":{"name":"cherow","version":"0.21.3","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.45","@types/node":"^8.5.2","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.53.0","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"e464d18e2455783b0839c1046c3d20836055ba0a","_id":"cherow@0.21.3","_npmVersion":"5.5.1","_nodeVersion":"9.3.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-vrdUo/vIM5iTxQo/ds6moJb2bdDB8UmXV5Mms4YSctLDI+cpP2IIjC2wAuMJOgIHoAS9fFCbvHCSFKbntf2TFQ==","shasum":"637d38fe9ae5b1da92e6091a36f06bdac1e23909","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.21.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEQ1N5PfQayYj78wWQDiY2OJJqWLnL8XsKhwl9as2TIlAiEA3q90TqsMn+sFzOMFPhlXRirIWhJXKNTI2DAa4NcILtk="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.21.3.tgz_1514812882177_0.255259363213554"},"directories":{}},"0.21.4":{"name":"cherow","version":"0.21.4","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.45","@types/node":"^8.5.2","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.53.0","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"4254653cb1bdb5c9fffcff440b05604102f0c154","_id":"cherow@0.21.4","_npmVersion":"5.5.1","_nodeVersion":"9.3.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-U/3sR+3uVNb/GAQ1t01APDy371DEtLFParHQreHsu8qLrPMPIe6Zs7ajyy4L8qNXR7FaOFLjodD+F6zcynRZnw==","shasum":"27c5dd9b501465c891af2812fb2a0e10c2087ed5","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.21.4.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDEBMt0r4ebC0UqtwTZunKQoPeSd+nm4TGtfyVxPJxu5QIhAJDFrcrEEFLOwkme6ayqofDv6XeM2T6PBmzvBNYSC8Jy"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.21.4.tgz_1514819725672_0.4301763544790447"},"directories":{}},"0.21.5":{"name":"cherow","version":"0.21.5","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.45","@types/node":"^8.5.2","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.53.0","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"4254653cb1bdb5c9fffcff440b05604102f0c154","_id":"cherow@0.21.5","_npmVersion":"5.5.1","_nodeVersion":"9.3.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-/Mtn2zoc3ynUF7uLetT+Vtf4Cb/XdT1h6OgIE85XWHrL5+6K9l3/BiKo+FWLcLc3q7l4Uii6VbOFhuvX042t1w==","shasum":"4c715c27fbcd7b03483353279207d8a41f5c4d01","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.21.5.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC/PY2+WmTS9KJjsamd1rut3ONc+fq2pvZ5jGHywtvTSgIgI/HrC3M1Wz8XGfeFAZ9MiI4pu1Qc5uw/2s9CE11ZOFk="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.21.5.tgz_1514891958464_0.9139763787388802"},"directories":{}},"0.22.0":{"name":"cherow","version":"0.22.0","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.45","@types/node":"^8.5.2","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.53.0","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"13a406a7402a430ac5aad3cd605b23e86e9811ad","_id":"cherow@0.22.0","_npmVersion":"5.5.1","_nodeVersion":"9.3.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-ezPaYuVV/PqCCv1Rzjdjbvlsuz/x/eikiEdZ1ZCTOgMvyt10+wGpyWzeT/Iuz4MKQEWBGI9IHidWkDHwjHAO1g==","shasum":"6a2ada3ddb4107dc5328d9ef39d07bfc0fedb174","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.22.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCcqQwVUWyI8pdKYV07yf9w+G/krglm6oaAU37fgjsADQIgJPixrLl5O13K3HhafKlYmzLYSeYOeCGf3ZxvHI6zlsg="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.22.0.tgz_1514942045408_0.36469392175786197"},"directories":{}},"0.22.1":{"name":"cherow","version":"0.22.1","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.45","@types/node":"^8.5.2","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.53.0","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"84c123c559ffae7de923eeb4f97b66e8fc76e14e","_id":"cherow@0.22.1","_npmVersion":"5.5.1","_nodeVersion":"9.3.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-Eiyh+oTT0zM1CyKoCdpidB8iVWHEhNgxgG7pnzASwOczGbfOHLm/ANXy1mp0U/jXbYDJjgEbFbAQ6RTb5uDeoA==","shasum":"5c8dee471ad4f170d250486775d236447f1f3383","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.22.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB7X7UD9FBDfNVO9ehk7ErA4u66OvQktdhReOKDmZcgHAiEA5eYeLtE+1+evENfLpwstdb+A9OUzxPfI373ofOq0Jj4="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.22.1.tgz_1514950434933_0.9644100132863969"},"directories":{}},"0.22.2":{"name":"cherow","version":"0.22.2","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.45","@types/node":"^8.5.2","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.53.0","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"10d7662e53fba31036c5fe9ddc3418a2b9131dd5","_id":"cherow@0.22.2","_npmVersion":"5.5.1","_nodeVersion":"9.3.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-hFPhFYguXDVq9EmT/tT8mqLb4j6N9cz1J8/sGZwTJw+d4Ys0fQv7VrSID249qP+vRDTecoWpkqCu/WBZCYledw==","shasum":"7e2f9ccae773709b35bb1e575fde17854db7f76d","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.22.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBkLmrEnrZT3/NSwEFYQycrJ4gOf7XlNRZVRSLlWnAG0AiEA7VS69szzqDfuDfYSa/6Aez3qf8KA97ogHMMFHQviqWo="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.22.2.tgz_1514954044321_0.8946425144094974"},"directories":{}},"0.22.3":{"name":"cherow","version":"0.22.3","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.45","@types/node":"^8.5.2","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.53.0","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"1d47c298368a2226c2a85f011cff3ad0d7fe2543","_id":"cherow@0.22.3","_npmVersion":"5.5.1","_nodeVersion":"9.3.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-orMN3sVUUGLsAHYpf+dhlPoL9egMLDKBtI99awQmlmyEO1OeC1h1x8ZsKHxZN3rGvA0FJsS+CZV+L14ICeJcJQ==","shasum":"974cb0ae0ebbb08b19e3f594f4c0aa8652a6107c","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.22.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDaLvZZlK6QxkcJoE9MQ/K4ww9QQKL4JbrTArNtD2+uXwIgdpNSlRLm9WyWAsLfhZWUzMjUNFi3yEIZgHGy1eJSL5k="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.22.3.tgz_1514963625133_0.06303563201799989"},"directories":{}},"0.22.4":{"name":"cherow","version":"0.22.4","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.45","@types/node":"^8.5.2","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.53.0","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"e53a601e35a615f37a13b47e71f7b6b7eb078a96","_id":"cherow@0.22.4","_npmVersion":"5.5.1","_nodeVersion":"9.3.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-Dkxss3P+cIRLKPDhxQGjd59q/kElw0k5vAMz+rSaX7N4rfoFR7xV/aT9DLqp3y6ql+CBXaWom3fvB0dcv2yaHg==","shasum":"99c58a3997f78cd93e06cb252ff8d78b5da8470f","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.22.4.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDf9kP/ZeotMmGLMq1Paqps6ZnL4GAHAzuKrYdfBnPxIAiAC1CCYPV1kQvP+L95/ILjorrm6PdQ68113PhTlheHTdA=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.22.4.tgz_1514981338564_0.11722487537190318"},"directories":{}},"0.22.5":{"name":"cherow","version":"0.22.5","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.45","@types/node":"^8.5.2","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.53.0","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"4672fcfb6d7f9f41811ec2831050628ffb9ec44f","_id":"cherow@0.22.5","_npmVersion":"5.5.1","_nodeVersion":"9.3.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-J6rZcaxrOquduRznmII9cjgm9px5mBzilo1nRJv+38ijbJcccM9vnzUX/dpD5JCRNdzGYQ/4i9zon5BcSOk65Q==","shasum":"e2756d4ddaf9529ddc83db0b800a0020b5547679","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.22.5.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID3hnLNw0pFHvUy25r5pR12BEUuGDJrKr9i6nBARLztsAiEA3KFJ3pM5RzyFvoXUs+vr/jgz4O7lLXC+iORmTcuMp9A="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.22.5.tgz_1514986845597_0.7786978126969188"},"directories":{}},"0.22.6":{"name":"cherow","version":"0.22.6","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.45","@types/node":"^8.5.2","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.53.0","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"6eb749a235f0e1f53537dc7d6703b3ca916fdf84","_id":"cherow@0.22.6","_npmVersion":"5.5.1","_nodeVersion":"9.3.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-Lm79dAkoSJvYOSXvMZkk2wQNq9rz6+3FrXGfkvFOnkxZ0aTs0Q0ZKy4cW2pKFhJ1xIdoP74wXF8bdVQXx/Xbeg==","shasum":"a23e2d2dd68a638ad77c9c807c441bd97f621e52","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.22.6.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDTxzbzPTCWld0HN+gryQAkEzzpLfGbWP/Ar7aeZ73A8gIhAJKAElafVDR+xd3ooLbxuWwvz4E1GEtid1LdhpFPcxsP"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.22.6.tgz_1515069415776_0.7798522524535656"},"directories":{}},"0.22.7":{"name":"cherow","version":"0.22.7","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.45","@types/node":"^8.5.2","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.53.0","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"62567972c5723f319fef30861d909155b8dc6ff3","_id":"cherow@0.22.7","_npmVersion":"5.5.1","_nodeVersion":"9.3.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-5Mgf3x0tlzUC7iUMS7WgfIC49l7cKjj+QxHQWPpX9wV5CHY2Lrialq5C8kxEjEkj5aVxGOyNHrFfYlznO3M0WQ==","shasum":"fd64939fdbff2b47c62fed071df281c4dbc76a6b","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.22.7.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGeiw+EGNPHzQGdIKFvnhys4lK1/Ja3+cHCGpejQsMnzAiEA7wybik/S+74OQmW0fNSvTVCStV5i+C5DxCu+1AnCoVg="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.22.7.tgz_1515074294100_0.05317421373911202"},"directories":{}},"0.22.8":{"name":"cherow","version":"0.22.8","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.45","@types/node":"^8.5.5","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.1.0","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.53.3","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"34ffe8ca1fd767289f1d41fb1cadcba0ec5bd6aa","_id":"cherow@0.22.8","_npmVersion":"5.5.1","_nodeVersion":"9.3.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-KnGAUeNe6oWS/TwZ2HmQ22AoU+sVZeO2FvWfQoFldM5jP2IvB0Iygmn1rbn7/5KZsfL8dmCaZlnt65NbpEgkDA==","shasum":"1fbf9c5d90a8302081b667e2c5f5fbf91158182a","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.22.8.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCh7hYnh64OIMfI0IBoGW/j+pv6HJbIZanFM/Rrsxfo4wIgRG799x2vC4X6+dZ8eiD4j7y1zVI2wBS+FmUIrYqVSg0="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.22.8.tgz_1515119616065_0.9000108423642814"},"directories":{}},"0.22.9":{"name":"cherow","version":"0.22.9","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.45","@types/node":"^8.5.5","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.1.0","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.53.3","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"34ffe8ca1fd767289f1d41fb1cadcba0ec5bd6aa","_id":"cherow@0.22.9","_npmVersion":"5.5.1","_nodeVersion":"9.3.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-7dK1IeaKErobfxYob+aMcowXXTBQMUrcb2QS+VxRQLUnto6f4Dz4LkzycfGJ3CDeySSxk1MeUXKCu+sb2f+7vw==","shasum":"098152cf4b70fc10e138eedac718094385c03c67","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.22.9.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCry7xz7wOPRe92HMgdk1GtY/kvbqmwwUyLvRB3RCLIyAIgYeASXfyYB98jCrpOJiq16Fjpl2nj3GsyTDoErJdYb0A="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.22.9.tgz_1515123105619_0.5907968080136925"},"directories":{}},"0.23.0":{"name":"cherow","version":"0.23.0","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.45","@types/node":"^8.5.5","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.1.0","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.53.3","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"562ca53e65974cec76c8c31865f2952aa46784b5","_id":"cherow@0.23.0","_npmVersion":"5.5.1","_nodeVersion":"9.3.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-pGfBrxzXyvIhSqNkKMcfIvpoUDI0N88RBj9bIROFaL48vJxgmUgfCukDAwbPMVbrYmT4F6YmNG2g+Gs9ujEK1Q==","shasum":"848671ff27810eee7a26bda303d9c80fc61a41c4","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.23.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGhFWfmrDrL6OnJ/oeDaRAsFzF5Y/5/0jAPdWIXR0YArAiAfuRrtrjikDa6QCrrKmr9sw/fxGYbilDPi247X9bQG5Q=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.23.0.tgz_1515130430841_0.3098846320062876"},"directories":{}},"0.23.1":{"name":"cherow","version":"0.23.1","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.45","@types/node":"^8.5.5","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.1.0","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.53.3","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"5192a3462e0c082dbf0fd53d07360fd4859c1d9b","_id":"cherow@0.23.1","_npmVersion":"5.5.1","_nodeVersion":"9.3.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-9AMRyRhUobLWgrHDgyToii7uIoFy+mA6gHo27APUUd9NLcfGOFb6v+SphwXDybw7lkIBSW5RP8AJDMFPoE4T2A==","shasum":"e6f92995c72ac4e6988a3cfbb191c3a43c4d549f","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.23.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBDSwoAh0rjJh14OKB5/8g+AB9ZvQ3lSMcQxCHGZwcx2AiA8CYGyRMwvNWUdgj7mmUmeLEL/uzASabZJg01Bya9BBA=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.23.1.tgz_1515154778426_0.03521306929178536"},"directories":{}},"0.23.2":{"name":"cherow","version":"0.23.2","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.45","@types/node":"^8.5.5","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.1.0","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.53.3","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"25766a130cd9eaef75d12e3adc6fdf0daabeb11a","_id":"cherow@0.23.2","_npmVersion":"5.5.1","_nodeVersion":"9.3.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-U4aAIEnZgyUzHeVXUkE71RJUNytd+k2bjTLoSL9EvIzCQkxo+XhlbeUie1pVqvSQ/30o/6+ASSSDj4OaUoTYXQ==","shasum":"16ec89367420a006d6432ba2888159cbcbe00fd7","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.23.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDmkP0yHT4vVGtp47rRlc4HjZ4eCOp8JV/YGMl0na/GjQIgV+ERcFPBzxTerM9EaqfcOceaBC4ORjHHaEouTZDNcYk="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.23.2.tgz_1515163011432_0.18035877333022654"},"directories":{}},"0.23.3":{"name":"cherow","version":"0.23.3","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.45","@types/node":"^8.5.5","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.1.0","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.53.3","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"4ac28b2dc60036ecef187b4ad5290c0de8288bf6","_id":"cherow@0.23.3","_npmVersion":"5.5.1","_nodeVersion":"9.3.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-8VMw0W7ignVZqb1+wV07V8CAxRfhvR841BrfnwUsyXhhUuoLqA281CnwQbKKLMhobazsOuXGZKFCQXthHtXFLw==","shasum":"2771312a324e47b060d704e283bd90020a228863","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.23.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBshXWAE24HH3lPPVL5B6TIMwxWadNX7q4ntgca3zfYGAiEA6PH/mUDBT3nR/BX3/tNzhnA5RMQZSsYuLYVyRJrTGrA="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.23.3.tgz_1515202512810_0.4900300137232989"},"directories":{}},"0.23.4":{"name":"cherow","version":"0.23.4","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.45","@types/node":"^8.5.5","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.1.0","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.53.3","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"8078ca862e9bd66a1a3055783e00114f1662c2ae","_id":"cherow@0.23.4","_npmVersion":"5.5.1","_nodeVersion":"9.3.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-DxU2Xx6VSg7s106R625WOZ2bZgBz+4FD2eBbH3l9fYKXJJrQKZ0Ht/gKoj7DzI3oKOBbKx1ao8iAr69ufmyrzA==","shasum":"9f0224ff050226bfecd70686ee626257974fcbdc","tarball":"https://registry.npmjs.org/cherow/-/cherow-0.23.4.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHcU54RzgJZHl5Nrl9mPd89c0eBjruBgk5/i+Uyeg3ieAiEA5aEx5H4SMzpMGMebPw8s0qlkekiaSedVYvpRbArBb1A="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-0.23.4.tgz_1515231394577_0.012440503342077136"},"directories":{}},"1.0.0-beta":{"name":"cherow","version":"1.0.0-beta","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.45","@types/node":"^8.5.5","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.1.0","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.53.3","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"040641d202a854ea592eae553079abc535a70f42","_id":"cherow@1.0.0-beta","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-ppPPxEUxcR3nGO9c3Qgg3VVJ6YO3hBBxMXrLSYiDIctrH8AuoSHimctFyRT3dTTqW2KqGmEpl8AH4IgbglUGGQ==","shasum":"19e4f3ba76f52c311fb3a6eaad17974fae692271","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.0.0-beta.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIESc5GkBVth0h17E4EML9VFCqETlCwHsKuK2A3yKImRYAiAkUaJUGlFqvBdGGY/c98eFeOxukSkrKTZ7Y1nuLy9WwA=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-1.0.0-beta.tgz_1517540161795_0.5448986012488604"},"directories":{}},"1.0.0-beta1":{"name":"cherow","version":"1.0.0-beta1","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.45","@types/node":"^8.5.5","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.1.0","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.53.3","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"a95d65f1de203786412ff21bf77d290b52f4164f","_id":"cherow@1.0.0-beta1","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-yATuZpwkavgAV7g4p+UFmX74lwpJdQG9N+X1A46GDpI3a9l279E05GJqnnCxjelNwVRSKLJ0t5rkwSu6AWd/xA==","shasum":"299f8b272bfdad0319c4614b691680a6c5484cf4","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.0.0-beta1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAu6cfOBQZy2flTjc2osfMncgN6348RU2dDMBImrZe9uAiAle7R6XPibE3ZxlGF/ss2EOKiTCGVmCjfxopaQG2QLDg=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-1.0.0-beta1.tgz_1517546118447_0.17658771574497223"},"directories":{}},"1.0.0-beta.1":{"name":"cherow","version":"1.0.0-beta.1","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.45","@types/node":"^8.5.5","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.1.0","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.53.3","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"a95d65f1de203786412ff21bf77d290b52f4164f","_id":"cherow@1.0.0-beta.1","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-bhS0Sj30mejEw/NsRcFh9vzq95aJlRrWo+dowCHg1TlNXl39NV73ycTq1of4YvEH/dxiVgHVtxwV9um3jAcApg==","shasum":"4417a9ee62b93cd570b401a5bffc92a560c83e18","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.0.0-beta.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCfEiub1pZvaPSjxUC/T5H0Uf4U/XAEK2g808yZvUnbSQIhAL+4+pMXWQX3zTZZJz5aNj+2oX+qfzK68m4rOEcfvxQz"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-1.0.0-beta.1.tgz_1517548183781_0.004480077652260661"},"directories":{}},"1.0.0-beta.2":{"name":"cherow","version":"1.0.0-beta.2","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.45","@types/node":"^8.5.5","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.1.0","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.53.3","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"25c27adaafad0e185a10633bf84bb1c07661ad83","_id":"cherow@1.0.0-beta.2","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-5Hws98HWZokGtg98/RigW6M9wJy8Zp0CNbKpJJNqiP5JcGms+Ggb/OCIE4ZrY5hRfPOBrRfqjR8DmPwOHiZvpw==","shasum":"3b4c134bb12eec38dba560f13c1dc8500e7e06c8","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.0.0-beta.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC3ZDhvCOZiT8tRsgJPw8BAvfTLcS+7glCBnrkX564KyQIgRaubwSbHr/SBLRbfnadofskKl8llv5tmNXE/8Uff1zc="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-1.0.0-beta.2.tgz_1517555695790_0.9485520510934293"},"directories":{}},"1.0.0-beta.3":{"name":"cherow","version":"1.0.0-beta.3","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.45","@types/node":"^8.5.5","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.1.0","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.53.3","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"fd01b2f4270034b8c8a5dc7853435388f6b069c7","_id":"cherow@1.0.0-beta.3","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-WmX8R9yeSM1tf9JUnuU0MYrasvhs6NEbyoh6sT5bjkktE1woOQMke3zc+OBcujfK2+EUPenWrCeuY0I1He6dkw==","shasum":"2830ce1346f28f2e9dcfb9cd6249fac51136f331","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.0.0-beta.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDsaVoVlKQm2jxVrSIedg0VHyOMoVbOauyZBj2OeUaWCgIgT75ZMMMriQJ+uCQCRJmXpYdfvqQJtgluDayhvTrbxYk="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-1.0.0-beta.3.tgz_1517562008174_0.657848852686584"},"directories":{}},"1.0.0-beta.4":{"name":"cherow","version":"1.0.0-beta.4","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","estree","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.45","@types/node":"^8.5.5","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.1.0","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.53.3","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"fd01b2f4270034b8c8a5dc7853435388f6b069c7","_id":"cherow@1.0.0-beta.4","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-k9Q8TXCtQ/jbkzDHSJBZIDptvQvDQ3WTW/Wf99MJfHUOqHvIdmCF/iPSocoChRnWYl19S1Sv6gLjj//eNug0/Q==","shasum":"4b56356a36b4ba3067c3c3e9f25a0d755054ad7f","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.0.0-beta.4.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDnn2t9FHWaDnOYGIvkBvvLQJPRTWUFV1ivA+NH/YMgeAIgOV21LWyAqBhOdefJ1Ww30Z/tqcpGgkeDgBYFHSL8uZY="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-1.0.0-beta.4.tgz_1517567375594_0.8966418986674398"},"directories":{}},"1.0.0":{"name":"cherow","version":"1.0.0","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","estree","es2018","es2017","esnext","javascript","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.45","@types/node":"^8.5.5","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.1.0","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.53.3","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"339257522c16d95b5d17742e41520f037b536672","_id":"cherow@1.0.0","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-IRufAl+EE8ZhWbqvNWnOtvKhx+zz20IRpBzVtkglY2hL8N+VioOlm7/6Yqcj7wp9rjDsFswfu7CKzq4jYjYoNA==","shasum":"e8b7fdfa4db1051128cde55d0068a55bca8bcaea","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.0.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGRABoeHP7KN6GUCp5WAHCokCp/jMy07vpR395nEsKsiAiAKYF26Pk8COwlva7y/JGImk0WRUGtWJ9cKboGC6H1fMQ=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-1.0.0.tgz_1517664017615_0.7692214488051832"},"directories":{}},"1.0.1":{"name":"cherow","version":"1.0.1","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","estree","es2018","es2017","esnext","javascript","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.45","@types/node":"^8.5.5","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.1.0","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.53.3","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"339257522c16d95b5d17742e41520f037b536672","_id":"cherow@1.0.1","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-J2M2qZ2Vu9eTB30gddMroNG6S6xLxfi0PyqfXuFSIGKBv8w9Du/8ehFTbSxDFBn8ay0E0xpEVOcpsJy6KJ9SIg==","shasum":"330905a097edde27cb80e2f445cf0be642ac368d","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.0.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD1+kbScnJr0abkvfFOcD5bq5grIk4Gx0n7lEQ46ROyswIgE0QbyOz7TTKDexO+ivC4rbweffx8HuFYUeiPymTCol0="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-1.0.1.tgz_1517669607686_0.5908993801567703"},"directories":{}},"1.0.2":{"name":"cherow","version":"1.0.2","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","estree","es2018","es2017","esnext","javascript","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.45","@types/node":"^8.5.5","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.1.0","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.53.3","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"337e8a4482ab7ab1eca901095edbd1a7d6df74af","_id":"cherow@1.0.2","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-cgHqEPyZ810EEdEiWYm53vKX7k6fLTl0BJPsDHuEWB4q78l2AJYBH/9gOaafzIQwVUGsX1vqoMbkw95c4m7uOg==","shasum":"99b746c06b304deab9868d1989e8d301feb9190c","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.0.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDYjJKODmCgj1UmUPB9XUb3T71+DxWB7FA7ObLdYXFqiAIgZKlJrpio+Zst15ch9oNZeFF6suALQMZb44SAOM70YUA="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-1.0.2.tgz_1517677004130_0.7673646970652044"},"directories":{}},"1.0.3":{"name":"cherow","version":"1.0.3","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","estree","es2018","es2017","esnext","javascript","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.45","@types/node":"^8.5.5","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.1.0","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.53.3","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"6ce6991604d1e37ec37ec13d0c3a148daf234ec6","_id":"cherow@1.0.3","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-/2W1i5MekJSdHc3UlVBnRN3sbyzHvti6mSClYdGw9BVzs7jT9/47HYKUTh6lZDpxbOQuRGQJuU6Zw1Cu/yfTjA==","shasum":"80ff7e44259ec7aa91c72adeaf01b216300a7c94","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.0.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHkeHg9AxGV/NA3gNB4QLMtQ7U3TLIIILpe1TfSYOl22AiEAkg+ymYRKXHoDIOsTf4Uzyuhhd68Rblxc/XLabyB4ir0="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-1.0.3.tgz_1517737514915_0.0936208728235215"},"directories":{}},"1.0.5":{"name":"cherow","version":"1.0.5","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","estree","es2018","es2017","esnext","javascript","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.45","@types/node":"^8.5.5","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.1.0","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.53.3","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"gitHead":"1ea3dc4666adb4f69952210b15bb4bc9a394c1fb","_id":"cherow@1.0.5","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-MkDqEIq3SHK1EzJXK8stin9IwScxpzNQ83U5U+XFC2jTsUJIxEagOtwMNygkNyDXHpOChue52FX5244ggqpYyA==","shasum":"48e85cba2afdb87698ce5244905cadad013a2775","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.0.5.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC4CpQC6NCQq50OQwDxBAI+LXGRjWvGJ5+OJYINhxz7UAiEAuL1COAQUzW2NykoQ8K8PS4IrvK7GC3/56usVc3zmu/0="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-1.0.5.tgz_1517820422856_0.7586038047447801"},"directories":{}},"1.0.6":{"name":"cherow","version":"1.0.6","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","estree","es2018","es2017","esnext","javascript","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.45","@types/node":"^8.5.5","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.1.0","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.53.3","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.8.0","typescript":"^2.6.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"8ac99380bc4f34840622445a83cfe67d3a0beba1","_id":"cherow@1.0.6","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-6dizFBa0sNf2AE4f2eA2u0zUCSk3iae6x67KyOMlrCG03IZ4QVcWEC9MmO9RJO5dYny8ug3ZmmHCCYT6kGvAWA==","shasum":"806d59f1e82f67f8001d606f3e89876c09e08c2a","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.0.6.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCNI/hs50KUHyJ5Qw54fa9ToB2eYBQGsQc3Md2JP7xz0AIhANbSINJQaaC40kjq6rAyzUOT08POEw7elkJobAGk/cDM"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-1.0.6.tgz_1517842192846_0.2555484068579972"},"directories":{}},"1.0.7":{"name":"cherow","version":"1.0.7","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.48","@types/node":"^8.5.5","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.1.0","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.55.3","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.9.1","typescript":"^2.7.1"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"fdd5984fb943361581a57b9f94292b0431928389","_id":"cherow@1.0.7","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-L6IEcvsKeJMEV+rJ/X2o/lthbFeIYQ9aqt1IdqHyL9fflf7yNpib1JBv31EjvZyxBDZNSWpGoNhESOG0V+k+NA==","shasum":"c62073143ff1fab4654d71fbb9912a0e169a6bb7","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.0.7.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICGULlN4IpxbngIhcpdYBL/xUt84AGGa4qVQ7LNzsG7CAiEAiggdxZxQPNbt97tuFY/2ozoBeijq7TDvi98txIfGsqY="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-1.0.7.tgz_1517911546841_0.27399541274644434"},"directories":{}},"1.0.8":{"name":"cherow","version":"1.0.8","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.48","@types/node":"^8.5.5","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.1.0","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.55.3","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.9.1","typescript":"^2.7.1"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"fdd5984fb943361581a57b9f94292b0431928389","_id":"cherow@1.0.8","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-Z+z8k/ELNSPjRHZyLJBqsnOFMd0cU6prZ8W5S+vTyMyFNu66Yi45PawJO+LVhU2GWzxyZt9ovNNB2Sy7Bb8Bfw==","shasum":"70dee52ecda0a8a46386c3c5eb0e0c184084f074","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.0.8.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB020O8lt91D2Kams2y3Hd2dnYOQ55Cy3tSUL5jvc0dqAiEAnMg8AWD605NZ0mqChr8vEgt7gkorlnktTZDLc/VtPOw="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-1.0.8.tgz_1517911617095_0.9724735440686345"},"directories":{}},"1.0.9":{"name":"cherow","version":"1.0.9","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.48","@types/node":"^8.5.5","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.1.0","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.55.3","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.9.1","typescript":"^2.7.1"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"41d043cce9d2dc3fccaf46aa89f8a9f16d02b83a","_id":"cherow@1.0.9","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-ZIKvtzzm8lpQshiZUiFLj1m54wK2moY6XW2mGw5w41FyvpWLH7TZvDnsMNUUtV0o2P7aagfvi5IPnJ3FnYfBzg==","shasum":"1ffa98a7eb231408f3d90dd43b8cfd6ac1084ced","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.0.9.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHr4SDIi+r1u3+rKK4C6YYuV0NkZI2pA1JhBgNb5Jy76AiABh2xpCllqvuS0KxH9nFYbGDGuC1o2dNpPKmKmiidI6w=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow-1.0.9.tgz_1517929764126_0.6595686585642397"},"directories":{}},"1.0.10":{"name":"cherow","version":"1.0.10","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.48","@types/node":"^8.5.5","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.1.0","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.55.3","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.9.1","typescript":"^2.7.1"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"74aa374e5b7cdd929d770f93d1724f16cbf14b82","_id":"cherow@1.0.10","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-q4WtejPt5vyKosOl7nbF3CquyEf/4nX/cpU4txJfFjoOR4MamkAW+cjvJmWQPPilkS4AnRVRYqa/9iOj+uve2Q==","shasum":"6d9d42e14fa226eaea5310f46e9ee97fca2ae696","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.0.10.tgz","fileCount":9,"unpackedSize":538611,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD4b8xAOnWNE3AD5ygUmKcCM56MNjdGdEwDyVDM2KAj0QIhALLR7OHh00YKMlXx8x8V3tBPVar6zA+8bXEo4plxP7hZ"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.0.10_1517972271311_0.14983775179977576"},"_hasShrinkwrap":false},"1.0.11":{"name":"cherow","version":"1.0.11","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.48","@types/node":"^8.5.5","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^4.1.0","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.55.3","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"2.0.1","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.9.1","typescript":"^2.7.1"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"74aa374e5b7cdd929d770f93d1724f16cbf14b82","_id":"cherow@1.0.11","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-ThZHEw9cm6bj7U40zR/vJEp94cYbL8PKWgfiyJ1jAGyFru61kOUVKyV2K+h0lrbTx+aMKS18klsnS/8Tmtk6Wg==","shasum":"23dabe58741577a7c5b40eec4a9c9faa1597e417","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.0.11.tgz","fileCount":9,"unpackedSize":538612,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD0CYwxUMAyhGbSRUyxfLVdXPNyahn51qFM4sRgWoyqqwIgDc6kxgdn0JOUCgQF3TAPkrOExLnf+3mETzgkqhgFjcw="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.0.11_1517972344581_0.7982209276077494"},"_hasShrinkwrap":false},"1.0.12":{"name":"cherow","version":"1.0.12","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.48","@types/node":"^9.4.2","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^5.0.0","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.55.3","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.9.1","typescript":"^2.7.1"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"fa48b32b1b9d988eb8f974c7c184572174ab2122","_id":"cherow@1.0.12","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-pR/qw/FtGDNhjWZA3qygYuwFnfZ/XQs4ida9d1qWGMK8gsABSde8whf+RhlhQWKHuXQuNyRMj0u8FBH1hRkYhg==","shasum":"0c75f736b30b1e7645cba994830d7416ed1389d9","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.0.12.tgz","fileCount":9,"unpackedSize":539240,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDvpH2DtXQYnUGuGLHp0wVaLz04DOtiWjVh77tMmN0KvQIhALnqQWbiclDrUUWMP4IemOz8sohfyaB7je9CUN/0JyV+"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.0.12_1518053662352_0.4406607484859626"},"_hasShrinkwrap":false},"1.1.0":{"name":"cherow","version":"1.1.0","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.48","@types/node":"^9.4.3","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^5.0.0","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.55.3","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.9.1","typescript":"^2.7.1"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"914dc61aa24f0db4c684895b4d4201d655688c4a","_id":"cherow@1.1.0","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-q28Gif1PDJ0aRswV6kPzrVHzSNqh5Iydeh5j7PUYc1+mhTZiHwTeUQWKYQ0DzuhWPmJBqYMdhp5qpWfGEgsttQ==","shasum":"79827ea1cadef60ff44a278cf4b1a53031d80aeb","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.1.0.tgz","fileCount":9,"unpackedSize":548025,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC23+4wu3BR50O9AdymyXhfO7gxR7ogJFqSqglue2fORAiEAxBFi/kffIXTuyewrmNQLaaeLdujcIMLQwQ3CHIzqcH4="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.1.0_1518141548417_0.24335060597198588"},"_hasShrinkwrap":false},"1.1.1":{"name":"cherow","version":"1.1.1","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.48","@types/node":"^9.4.3","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^5.0.0","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.55.3","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.9.1","typescript":"^2.7.1"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"7a6256e963ffc91d063a962a170cf23e0f4dd4e0","_id":"cherow@1.1.1","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-oEzpgvQ09WDEp5KWzaax/9b7332vF28xMtFTINVnmTh5PQJMtyZ8vYJF0epzd6imzz8brgO3jNTxF1MSNBNW6Q==","shasum":"2b62cf7eac8c22149ccd8f93cb7c5beca3d105cb","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.1.1.tgz","fileCount":9,"unpackedSize":549673,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDMbkLSW5eOR7hUubszFEd6+afk4aA3TZvVHFD8/tyb4AiAU5giJV74HqOMM7SWQDGjstoP20icnlo56B3PX0GjazQ=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.1.1_1518182973632_0.9651123570467035"},"_hasShrinkwrap":false},"1.1.2":{"name":"cherow","version":"1.1.2","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.48","@types/node":"^9.4.3","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^5.0.0","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.55.3","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.9.1","typescript":"^2.7.1"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"bdf41c8584e265ea45c65f773762d3a02870ade7","_id":"cherow@1.1.2","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-YHaHiyUnCcdeZ2QWjIzdNNmlEKrtWnye0vgVHGNEDZ7Zlks+LhgyBxc65jKDTwINsIuloKkNH/i/s52VGVtZ5A==","shasum":"2ed46cfadcee06d8fcf1cee48bb3763691963b55","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.1.2.tgz","fileCount":9,"unpackedSize":551136,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCRBa0AwfgpOOv4xgBpKsXC6kV909iOt/uAC7xYTz6v3wIhAONhuET4wYeycMougxo+b5W7G6rahrY3ztnvb6wPOl9K"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.1.2_1518262925077_0.025556781217683122"},"_hasShrinkwrap":false},"1.1.3":{"name":"cherow","version":"1.1.3","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.48","@types/node":"^9.4.3","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^5.0.0","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.55.3","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.9.1","typescript":"^2.7.1"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"af8830a02fa6eb1182e0cb0d4fc92570003cc18b","_id":"cherow@1.1.3","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-Y8pQrUvRXYzb5kAONuC+YsSuMoRib54Xjl1PNhglEBUQEcsIbtuF95uya8gJDxKWcmI0i2GJQNsPtwRpCK1SsA==","shasum":"07df71b95791caa5ecefe420f856436c4262ccd9","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.1.3.tgz","fileCount":9,"unpackedSize":552998,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFQ4tNPeWw/6WhoEVlsvQsJ5Qv0attR7rNl6xTGngYfzAiB4x/YbwLZYbzkVw2z4xlE1nv+GkmYaLvBA177Vfz9lxg=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.1.3_1518274137227_0.08767902409272144"},"_hasShrinkwrap":false},"1.1.4":{"name":"cherow","version":"1.1.4","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.48","@types/node":"^9.4.3","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^5.0.0","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.55.3","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.9.1","typescript":"^2.7.1"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"8b71b61fffe31b4ab9105a8ac0f30635a71dc7a3","_id":"cherow@1.1.4","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-PQmnfWAXeQsRNjmp1A/K3gWgk1+bWpKlHYydgYNW5LUUCMjGJZXmfjx1N13FDgUUdtnuwPPDP+fCX5sp4y2VoQ==","shasum":"2a216eafde9e4164f630f8c5d208ede550623082","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.1.4.tgz","fileCount":9,"unpackedSize":558527,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCi5JXSyXH+fi7ImxvCdkDXRiDVdGCrVfO19OTxyerQiAIhALcROxZ7xNH/gF/KX8eGMmG3O+KEGil1uazzDTVFVq5t"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.1.4_1518478600090_0.4543218155546078"},"_hasShrinkwrap":false},"1.1.5":{"name":"cherow","version":"1.1.5","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.48","@types/node":"^9.4.3","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^5.0.0","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.55.3","rollup-plugin-buble":"^0.18.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.9.1","typescript":"^2.7.1"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"8b71b61fffe31b4ab9105a8ac0f30635a71dc7a3","_id":"cherow@1.1.5","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-bab69eKH+kpoiO40I5vDmBT2XcZDtRBEXIGgLLsIJLf/eOSnihpF+A2GToY8t1/Q88eqGoQyrSFh39K8gSLBpQ==","shasum":"24d828a1ffe73e3f0b1b0cd4e510dfa5a6e7b2ec","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.1.5.tgz","fileCount":9,"unpackedSize":558527,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFdNcp/ED5Zet2emG9HU+gFuxvXcZGkH7oxGRpfUdOVvAiBnfdncKsoeDj2pdSZBqkM7LApH3DzVqcTgKJFIB0zokA=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.1.5_1518478751152_0.9174256816976261"},"_hasShrinkwrap":false},"1.1.6":{"name":"cherow","version":"1.1.6","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.48","@types/node":"^9.4.6","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^5.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.56.0","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.9.1","typescript":"^2.7.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"f0ddf165d78651b875ec9a69c8f906a41237db07","_id":"cherow@1.1.6","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-WV7/GDdgr1ul1yok8XfuEKgGXk45xm2WIVBSZadG8c2PJf5bkTTPSNQxUUo/5Ww9S9VMYHLm5tazG2y4QAs+Dw==","shasum":"ce427ce42b8a7c9c48bf8cea29d2c19e5d5c65d4","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.1.6.tgz","fileCount":9,"unpackedSize":556013,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDR7IBcG2LafpDIHmGMoYDN4srwpbpaZzNdUbyYHDHOIQIhALdT+rycJG8OPtqNpza9PPnqcw8bnvifh4eJaNAKrEDd"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.1.6_1518739607023_0.5811595618752936"},"_hasShrinkwrap":false},"1.1.7":{"name":"cherow","version":"1.1.7","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.48","@types/node":"^9.4.6","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^5.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.56.1","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.9.1","typescript":"^2.7.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"e97d4708c822811d52e67696108b48cf811a5986","_id":"cherow@1.1.7","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-mJMailqn1GEYktlM10QwBJiMbvSByvvYofqIkoXWpKDY/hjYQKaEUhQ4I//ezxJUFs5IgZL2o5eHlViGbR9dFQ==","shasum":"83a0c7a2feb1409efdd7454232ca24ff902a58c2","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.1.7.tgz","fileCount":9,"unpackedSize":587002,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDJ+o/JhKlk0M5Xf3bP1SyRmGOjbHlsenc4D0li/C2DFgIgQUhKSFSULTs8Y46gHBm9BQlEwEY5CPsTPryosOCEV5I="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.1.7_1518878392952_0.15205040864083386"},"_hasShrinkwrap":false},"1.1.8":{"name":"cherow","version":"1.1.8","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.48","@types/node":"^9.4.6","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^5.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.56.1","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.9.1","typescript":"^2.7.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"64c86568be8fdc8c9d80d124c8b863848aa66037","_id":"cherow@1.1.8","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-iV0U/Sj8AGxn/FFeQQNbYYBrvX5RLKgziRLg2g6yVd8AEkNyzlA0fxrC2QmEY+BxbWxgRzi82Z4hr6zu05uxKA==","shasum":"d3c56e5570f11b28b936752707a751218d41daed","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.1.8.tgz","fileCount":9,"unpackedSize":583425,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCs3GoYuGEQZqRzQyGYM5obO7oRie3JIygyTillSZGaVAIhAKa4S/uv7+/EPi7i/48qhkkVedS8b5qgEbR1/kBhfBCp"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.1.8_1518992261003_0.45810073568912224"},"_hasShrinkwrap":false},"1.1.9":{"name":"cherow","version":"1.1.9","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.48","@types/node":"^9.4.6","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^5.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.56.1","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.9.1","typescript":"^2.7.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"64c86568be8fdc8c9d80d124c8b863848aa66037","_id":"cherow@1.1.9","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-GidzZMMFPICZCdGlQdoz4Ke7uJK+SqMlM5BwMfV+kBbgitN8OoshnNzkRQzydgavaB2VVktWuSrWFdsUlDxNiA==","shasum":"74d6b622541e8c30b3d4c9fb8ee8901757ace979","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.1.9.tgz","fileCount":9,"unpackedSize":583183,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDvH9xOb9cmjvUftwFyBzDCZPvoTggr2aJM2ZFnwSmT0AIhAPuAqVJ/qJM2qDs95172muG3RN5rwDypPP6Q5iP8Ogo2"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.1.9_1519033017842_0.1754007440543428"},"_hasShrinkwrap":false},"1.1.10":{"name":"cherow","version":"1.1.10","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.48","@types/node":"^9.4.6","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^5.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.56.1","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.9.1","typescript":"^2.7.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"e675ef8029b06c579726ee9e78d5f7501ce75c98","_id":"cherow@1.1.10","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-y8ln3T1YWJUS7mhm4xPolB4lNbAX9bLKxCG9FhS13+xz5QjUQ2cIAm+H7rNNC2GUvXecT68QV0PniZCCkifYmg==","shasum":"b2ab2bae8ca405bd6439aef41e64691f0a0b4372","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.1.10.tgz","fileCount":9,"unpackedSize":583186,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCH6AxoT6QxwDC0dA291O1vi+eBTn/w64cW+cDZ3CGZoAIhAJacgDma2jYcftr2j99j/kcMUaNeRchzfYn8krkeG9YH"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.1.10_1519033330582_0.46316338724977313"},"_hasShrinkwrap":false},"1.1.11":{"name":"cherow","version":"1.1.11","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.48","@types/node":"^9.4.6","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^5.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.56.1","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.9.1","typescript":"^2.7.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"787e6d28f6b70f3cd13c1c6534cb9e9d01f0204d","_id":"cherow@1.1.11","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-Jb9RY/qhSIxKQhAxUC5+uuOBahzE4nP0aDn9F8/+65TIsalIJtlKKWaqKPjQaYU33+Z+byZhutN0dBfblMRqdQ==","shasum":"340486117a73a3e7bd7fbe6769705855a7b1f52b","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.1.11.tgz","fileCount":9,"unpackedSize":585418,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAjOu1bgy5l3DzviU15HCOI5YLzxrAPTX1H7YM5tRhVDAiEApvTpoFrp0ZJPYNbdZuJJ8VCpOeuJeulbMG8VxPe1iio="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.1.11_1519133470319_0.4321530564132394"},"_hasShrinkwrap":false},"1.2.1":{"name":"cherow","version":"1.2.1","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.48","@types/node":"^9.4.6","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^5.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.56.1","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.9.1","typescript":"^2.7.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"578a0b287e18f67314c5fe91bc5c4f2260529891","_id":"cherow@1.2.1","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-2wI5MHJXlFd9uTxcLxraWLyP8rtM3yrVKGoXvU8jdOnYseF5nwsNe3RvdcewA4wC+qkCnzPbLwd612MaqGGylQ==","shasum":"08ebaa034dd88f30f9f8a2e9b356c13bc5c26de3","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.2.1.tgz","fileCount":9,"unpackedSize":586220,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDWxQiQyIzHhjYWiGvam+oys00dH5BfTnY2pVzY5XQeXQIgb+QjA/hDgV6xAzAfXNX7FpYMxvHPctrnAmjwtlwNAnw="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.2.1_1519390138239_0.05804694345435646"},"_hasShrinkwrap":false},"1.2.2":{"name":"cherow","version":"1.2.2","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.48","@types/node":"^9.4.6","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^5.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.56.1","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.9.1","typescript":"^2.7.2"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"55fcdffaafee49f3a65ee17dcb93455ce822662f","_id":"cherow@1.2.2","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-WTx+Sz7xPar2KBD5/ontASEzGfm0Lj5Ar8aggZ435naUGbq/2OCGbHoZRcWVwnnHwLOAA0FxuhyCYLTIbwCEzg==","shasum":"f23aeef95eb98a731abcd095d8ab529338982ee5","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.2.2.tgz","fileCount":9,"unpackedSize":584514,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDQmUt5SKR68Py3VJPvaLfpM1+/DZ6PkguuL6wHF8o6BwIgDEF/poqrtE4yFMKsN+z9gRoEGxYCL9Tm9eXnxtL33L8="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.2.2_1519470106059_0.0795628976470999"},"_hasShrinkwrap":false},"1.2.3":{"name":"cherow","version":"1.2.3","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.48","@types/node":"^9.4.6","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^5.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.56.1","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^4.1.0","tslint":"5.9.1","typescript":"^2.7.2","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"1e5a74cde23c9d3dd92b28fa763ef58cd1900095","_id":"cherow@1.2.3","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-SqCyd888nSC2O3WMTKBuGuyfD2yQwAtmQVlEMwgVWfmWFJPg2Iit/mDIeKjRzkKJUcV6W1fTlgs9Gx83yWmq3g==","shasum":"c7878b304391c962f35103e23eda4cffe775437f","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.2.3.tgz","fileCount":9,"unpackedSize":585675,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH2mHYXjN0QKQNUWm2d40X7dmVUslDCEYrHykc6dIX/QAiB4eAwGAgLr8WhaWh0r7Jz/gddCisQc+uEfIxkTejUoLA=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.2.3_1519620896273_0.5571305805151139"},"_hasShrinkwrap":false},"1.2.4":{"name":"cherow","version":"1.2.4","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.48","@types/node":"^9.4.6","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^5.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.56.3","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^5.0.1","tslint":"5.9.1","typescript":"^2.7.2","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"8a79f9faf0aaf0d3da9b1cfc51b809cf2a27f3c9","_id":"cherow@1.2.4","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-hKdkXAsretyAZD1L9ROAc6t5Z0SNc2jn/y3yjaBc7Q6hP/tV3tRA2dzNK6mX6QfyVrh0w+2VerIsSqR0DwKDMA==","shasum":"2881510f23169bb3f1ec1161559d99ac53fb4663","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.2.4.tgz","fileCount":9,"unpackedSize":591807,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDfS94X99UmEg+s8iQ9hwo+8INnirOMCvizWpyA/mJyvQIgUjMEcEa4LHmYl6dtKhlzNA2qkD5hS6f66qvKFtLRQvs="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.2.4_1519950553992_0.6955699202112429"},"_hasShrinkwrap":false},"1.2.5":{"name":"cherow","version":"1.2.5","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.48","@types/node":"^9.4.6","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^5.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.56.3","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^5.0.1","tslint":"5.9.1","typescript":"^2.7.2","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"72ef35d9ae8913df9c5753ada8d0df68173c9feb","_id":"cherow@1.2.5","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-n+Xfn2AfCLWm8lk3BQZtR1KHgtKIyPROLuRhEcLWLYXE3WvS6WxhiyKiVhsKx7mN+32eOJpMJOt5586sDAfSRg==","shasum":"55f39e5884e3e362b38119e9fa37d14265f5ffe6","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.2.5.tgz","fileCount":9,"unpackedSize":593944,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHv0NbCwopXb7igdPvekUidyOz4eAFGMerhsfHH1rjjFAiEA27Cbdpo6yYiqQyHoNKG/0RzrBL+CMfeutAQp29ZYupg="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.2.5_1520118289120_0.9135496665907723"},"_hasShrinkwrap":false},"1.2.6":{"name":"cherow","version":"1.2.6","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.48","@types/node":"^9.4.6","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^5.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.56.3","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^5.0.1","tslint":"5.9.1","typescript":"^2.7.2","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"671551353a87c159bcf5db854b4019a44516bb0b","_id":"cherow@1.2.6","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-hgxpZNXQzuj8JA7QSg0A9wSO34q8We325irDnr5toC3YelokDV8V+VDmj2FUll7yJBbmfGizTw2mM493maJSIw==","shasum":"b707f47739bbe102669bf2c2977bf8f1f98e121c","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.2.6.tgz","fileCount":9,"unpackedSize":593816,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBDJ4Daxs6L+j4uHXx99DF/Apo/k2yXDLg0/Hj9XaS7tAiEAyrFBArGJCnS7FaMcvKTjl+evjfE3OWeLO8Nm9qE5beI="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.2.6_1520123266280_0.20330611692927425"},"_hasShrinkwrap":false},"1.2.7":{"name":"cherow","version":"1.2.7","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"dist/cherow.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.48","@types/node":"^9.4.6","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^5.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.56.3","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^5.0.1","tslint":"5.9.1","typescript":"^2.7.2","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"faf64fbd259eafc8fd383e7445d19dcb8e2b0d8c","_id":"cherow@1.2.7","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-e4Zd5xkomK5XyH3rcPbxHQrDRoljW9ZiV7wgBSM0diB8QWzBzGa36SwmA+bqNtk0F+9uiqUcJ+zGX3/j0W+MrQ==","shasum":"001caf5ce01d4ffd00eb6292164c793c6c6c604b","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.2.7.tgz","fileCount":9,"unpackedSize":594262,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDUcb/tWGaTX7/3zEBL5BzDG6bOGkMCs8BM52XlDBPGywIgFmUewJDYgZVLhG9jNF0cKIO2iBAktAq1Kh02VIhx7Xg="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.2.7_1520142348323_0.660037474934672"},"_hasShrinkwrap":false},"1.2.8":{"name":"cherow","version":"1.2.8","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"lib/cherow.js","types":"lib/cherow.d.ts","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant"],"files":["dist","lib","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","build:lib":"tsc --skipLibCheck -t es2015 --m commonjs && rimraf lib && shx cp -R build/src lib","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf lib dist build coverage","prepublish":"npm run build && npm run build:lib","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.48","@types/node":"^9.4.6","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^5.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.56.3","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","shx":"^0.2.2","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^5.0.1","tslint":"5.9.1","typescript":"^2.7.2","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"960f795c87c1e07aae8af171cb43be22e3290392","_id":"cherow@1.2.8","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-4r1SX9p4y6sZL1ciU9IHEDlPnzoOFmCJ6pKOxkmHUUpaU9TD4N03IF9kMmWdforPoLqt4TnzzE+uXKYhLCdl7Q==","shasum":"4f061ac89824016b66c7f9ab13b6c9ade7c70d64","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.2.8.tgz","fileCount":36,"unpackedSize":1002796,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCWbluqUxiLz0No+wpCTq4jrmmjZH/NG8POEtHWBe85XQIhAMizxjAop6U+qwRrqkmr2E6n5yq3rAQh610aWbY/+8qP"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.2.8_1520246215911_0.5863098902431549"},"_hasShrinkwrap":false},"1.2.9":{"name":"cherow","version":"1.2.9","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"lib/cherow.js","types":"lib/cherow.d.ts","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant"],"files":["dist","lib","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","build:lib":"tsc --skipLibCheck -t es2015 --m commonjs && rimraf lib && shx cp -R build/src lib","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf lib dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","bench":"node scripts/micro-bench","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.48","@types/node":"^9.4.6","coveralls":"^3.0.0","cross-env":"^5.1.3","benchmark":"^2.1.4","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^5.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.56.3","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","shx":"^0.2.2","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^5.0.1","tslint":"5.9.1","typescript":"^2.7.2","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"27dd178dd15c7cfc811b0d3b0b83db56e9b18260","_id":"cherow@1.2.9","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-Fq4CPNWvBPST+I7/OlVAn9YgGKY4d0orG/ynrSSU0I++OVAkYurdfWu3ONNuwXg5INjkMNL/OEiVWf/+58ZsHQ==","shasum":"b0f37f9ccf1656bbebe309c9365f77127b6a0712","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.2.9.tgz","fileCount":36,"unpackedSize":1087043,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDLWz2D4zAlmiH6xEl5k4hPUyJ6J6uXIXDjrhGi6x5tdAiBHtc1x6D8+1Y5D3ZyyyMu6GibXnXLzVKAH9LyB5eJLLw=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.2.9_1520391610820_0.30399154809202944"},"_hasShrinkwrap":false},"1.3.0":{"name":"cherow","version":"1.3.0","description":"Fast, standard-compliant ECMAScript parser written in ECMAScript","main":"lib/cherow.js","types":"lib/cherow.d.ts","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant"],"files":["dist","lib","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","build:lib":"tsc --skipLibCheck -t es2015 --m commonjs && rimraf lib && shx cp -R build/src lib","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf lib dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","bench":"node scripts/micro-bench","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.48","@types/node":"^9.4.6","coveralls":"^3.0.0","cross-env":"^5.1.3","benchmark":"^2.1.4","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^5.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.56.3","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","shx":"^0.2.2","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^5.0.1","tslint":"5.9.1","typescript":"^2.7.2","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"27dd178dd15c7cfc811b0d3b0b83db56e9b18260","_id":"cherow@1.3.0","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-CPVcpzhEn51flYwXsAbhTKSjjIHbUeXR6NrQSJpeFLXRRmumkCJj97Z2yGnlqsiWKEwTfBBZpUvst5/+ybzKFg==","shasum":"af161f96de049720dd4d9717621edaee4634b507","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.3.0.tgz","fileCount":36,"unpackedSize":1089448,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDCYMU26cFI5hO75LpYWWmlUlQ1do7coT0mr/xUarVHLAIhANByTu1WWcBaOd8gieFfzXJKcIZzFBjIlj4/DyfKdQap"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.3.0_1520400421572_0.17441759312657057"},"_hasShrinkwrap":false},"1.3.2":{"name":"cherow","version":"1.3.2","description":"Fast, standard-compliant javascript parser written in ECMAScript","main":"lib/cherow.js","types":"lib/cherow.d.ts","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant"],"files":["dist","lib","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","build:lib":"tsc --skipLibCheck -t es2015 --m commonjs && rimraf lib && shx cp -R build/src lib","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf lib dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","bench":"node scripts/micro-bench","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.48","@types/node":"^9.4.6","benchmark":"^2.1.4","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^5.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.56.5","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","shx":"^0.2.2","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^5.0.1","tslint":"5.9.1","typescript":"^2.7.2","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"39082a134208a9ad0cb381e401f1d0fd83bc40d3","_id":"cherow@1.3.2","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-u11ddgMc9QatBCuMNxNz+u46UF5q32zn1fz0rCiojYvQEt2GujWn9w63vY9yhL/46qlP6hrMb3x1CvCb18COYw==","shasum":"30e458a2e43542afa5ed648b15cab6cd960e8c7e","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.3.2.tgz","fileCount":9,"unpackedSize":590897,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEztjgd9CoOmzUzL02PCITb9sw+EfKHlSBhRbvConkfcAiBWKyv1SrPjpfY961YlwOH0PGOxx21LaJ3E3aF0KtVfWQ=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.3.2_1521475575824_0.1592645284674692"},"_hasShrinkwrap":false},"1.3.3":{"name":"cherow","version":"1.3.3","description":"Fast, standard-compliant javascript parser written in ECMAScript","main":"lib/cherow.js","types":"lib/cherow.d.ts","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant"],"files":["dist","lib","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","build:lib":"tsc --skipLibCheck -t es2015 --m commonjs && rimraf lib && shx cp -R build/src lib","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf lib dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","bench":"node scripts/micro-bench","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.48","@types/node":"^9.4.6","benchmark":"^2.1.4","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^5.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.56.5","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","shx":"^0.2.2","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^5.0.1","tslint":"5.9.1","typescript":"^2.7.2","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"ae2a3a0588d13a511f8df11425fcdc383122d63f","_id":"cherow@1.3.3","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-CN/85zTeUMK7DJO2mKPoy1OgWCR9OCWxzkOGZbHLF06BwAUAKh2dHaMHt8sMtVz0bpWtS6vZ/Tk9Peh+lLLx7g==","shasum":"daab87f44aa37c717fc07d15835da3a758008d7c","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.3.3.tgz","fileCount":27,"unpackedSize":882489,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCLl5RrsV9XrsldctKZ1rFjFbHQ3yD+SYfMSZQu6hN5zwIgS07GPWs7w/4+9mBBnE3NGPBiA+UDNyvVliHBXkqkUmM="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.3.3_1521476311047_0.7383876620084395"},"_hasShrinkwrap":false},"1.3.4":{"name":"cherow","version":"1.3.4","description":"Fast, standard-compliant javascript parser written in ECMAScript","main":"lib/cherow.js","types":"lib/cherow.d.ts","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant"],"files":["dist","lib","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","build:lib":"tsc --skipLibCheck -t es2015 --m commonjs && rimraf lib && shx cp -R build/src lib","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf lib dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","bench":"node scripts/micro-bench","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.48","@types/node":"^9.4.6","benchmark":"^2.1.4","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^5.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.56.5","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","shx":"^0.2.2","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^5.0.1","tslint":"5.9.1","typescript":"^2.7.2","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"f0ddb17d96f7cbda5c91983261ec840fc7e4ede9","_id":"cherow@1.3.4","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-oyR5WJVhAI9FsdX9bFMO30P3cyncTiz8h4V42iF1YVQrCTxn6f/RmN83OnN2bBNah8FPaRoJavYyFYCUs3SfMA==","shasum":"3ef4bfbf6c4d7aec62805c363ec168692ea22fd2","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.3.4.tgz","fileCount":27,"unpackedSize":882679,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA9Bqn8jiVCnYIk/DVIHpMaKseFEVhBUoUOcLgVzkHttAiEA79UKZFVJLeZsS9APApTJ5YxwgEqDPHl2ASBobP5ppoc="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.3.4_1521481150312_0.825852017747001"},"_hasShrinkwrap":false},"1.3.5":{"name":"cherow","version":"1.3.5","description":"Fast, standard-compliant javascript parser written in ECMAScript","main":"lib/cherow.js","types":"lib/cherow.d.ts","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant"],"files":["dist","lib","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","build:lib":"tsc --skipLibCheck -t es2015 --m commonjs && rimraf lib && shx cp -R build/src lib","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf lib dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","bench":"node scripts/micro-bench","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.48","@types/node":"^9.4.6","benchmark":"^2.1.4","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^5.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.56.5","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","shx":"^0.2.2","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^5.0.1","tslint":"5.9.1","typescript":"^2.7.2","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"54e03772a912ed78040c3f391007414bc0b0f3e1","_id":"cherow@1.3.5","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-RZ7U2/OmH59G9VUM9s6sC0grMHNKtBspjWe2FPv2pqkhDv7RMnjo6c5TO5cO0JpHQ13LjF/+++Xmfow2kxyAmQ==","shasum":"e2269cc2f2a223f5f7b0c76a053097c6b5fa477f","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.3.5.tgz","fileCount":26,"unpackedSize":787669,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE9jikFolmcvjKYdHQTsrg12Y7TzQ9VWGvDeqXLBMoubAiBvGHglyU+8aCNGKW+cX0kLMCxoXFEI/qwS8mlBVYJDvA=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.3.5_1521481772516_0.03222592255398604"},"_hasShrinkwrap":false},"1.3.6":{"name":"cherow","version":"1.3.6","description":"Fast, standard-compliant javascript parser written in ECMAScript","main":"lib/cherow.js","types":"lib/cherow.d.ts","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant"],"files":["dist","lib","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","build:lib":"tsc --skipLibCheck -t es2015 --m commonjs && rimraf lib && shx cp -R build/src lib","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf lib dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","bench":"node scripts/micro-bench","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.48","@types/node":"^9.4.6","benchmark":"^2.1.4","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^5.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.56.5","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","shx":"^0.2.2","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^5.0.1","tslint":"5.9.1","typescript":"^2.7.2","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"4fd896fb9023a2d161d899d6a9ccac29d23f46c4","_id":"cherow@1.3.6","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-YbulXFu4h9vkyuC72lzFdnk5tVGKf5Y5+X1lYAMWv3c68pmWzbF9tMzMVpcBcdMhf30VWzUqgmd/Q2SiWRO5nw==","shasum":"741290a8d1fc0216f6d2e1ef9a4df2d5342f8836","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.3.6.tgz","fileCount":27,"unpackedSize":882079,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFWWJ0F+CxCrw8+SYJPUryXaYYPTmWSll+AYwJd52me2AiEAtb1DWUDpk6skMDP+o44iTwTCiqpWm3OOHofUWITnf8I="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.3.6_1521491169979_0.7649790761702946"},"_hasShrinkwrap":false},"1.3.7":{"name":"cherow","version":"1.3.7","description":"Fast, standard-compliant javascript parser written in ECMAScript","main":"lib/cherow.js","types":"lib/cherow.d.ts","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant"],"files":["dist","lib","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","build:lib":"tsc --skipLibCheck -t es2015 --m commonjs && rimraf lib && shx cp -R build/src lib","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf lib dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","bench":"node scripts/micro-bench","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.48","@types/node":"^9.4.6","benchmark":"^2.1.4","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^5.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.56.5","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","shx":"^0.2.2","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^5.0.1","tslint":"5.9.1","typescript":"^2.7.2","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"8034b90aef5a12ba189824974fdc6e1adfbc5de5","_id":"cherow@1.3.7","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-gugE5Rq7zMSiV6qO3PV6wGucNeP99OwR7cU4aiXpTWLU5AAD3PuV7sNZNndYuXVvy0oaWcE57EFZuB1iWDU2FA==","shasum":"ba2e3c13f317e47fbc5c02216871e892a652f1e9","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.3.7.tgz","fileCount":26,"unpackedSize":787913,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFsutNwHSC5AZ1mGX0mG1RnybJWz+p76/B9Dh6CBFAyrAiEAiesRg2nQqq6YV3Pl4y3YxSRyunmZfoZff1NQR+qMt7s="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.3.7_1521509031271_0.5253591882203603"},"_hasShrinkwrap":false},"1.3.8":{"name":"cherow","version":"1.3.8","description":"Fast, standard-compliant javascript parser written in ECMAScript","main":"lib/cherow.js","types":"lib/cherow.d.ts","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant"],"files":["dist","lib","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","build:lib":"tsc --skipLibCheck -t es2015 --m commonjs && rimraf lib && shx cp -R build/src lib","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf lib dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","bench":"node scripts/micro-bench","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.48","@types/node":"^9.4.6","benchmark":"^2.1.4","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^5.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.56.5","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","shx":"^0.2.2","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^5.0.1","tslint":"5.9.1","typescript":"^2.7.2","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"8034b90aef5a12ba189824974fdc6e1adfbc5de5","_id":"cherow@1.3.8","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-V6eo7CG0i1UJUNqfoIT2eTYhVgilVOiv8BU4j92X4voBlDwlaMPi0qGylvhfOlcPgeJpnxMM1dZpePFFTlNYbw==","shasum":"624b75bc75d2937be4b3236f1fd73117e73a60c4","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.3.8.tgz","fileCount":27,"unpackedSize":881779,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCqFlR4lto4rsf54mXGbhY4C4ClhltxBpfc8/CBPVT4YQIgHRO/pgYBE7MeYNRglnf48X/pfDrOWns6ZqSUXSsFxDI="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.3.8_1521537751141_0.4203259660135492"},"_hasShrinkwrap":false},"1.3.10":{"name":"cherow","version":"1.3.10","description":"Fast, standard-compliant javascript parser written in ECMAScript","main":"lib/cherow.js","types":"lib/cherow.d.ts","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant"],"files":["dist","lib","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","build:lib":"tsc --skipLibCheck -t es2015 --m commonjs && rimraf lib && shx cp -R build/src lib","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf lib dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","bench":"node scripts/micro-bench","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/js-yaml":"^3.10.1","@types/mocha":"^2.2.48","@types/node":"^9.4.6","benchmark":"^2.1.4","coveralls":"^3.0.0","cross-env":"^5.1.3","glob":"^7.1.2","js-yaml":"^3.10.0","mocha":"^5.0.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.56.5","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","shx":"^0.2.2","test262":"git+https://github.com/tc39/test262.git","test262-parser-tests":"0.0.3","ts-node":"^5.0.1","tslint":"5.9.1","typescript":"^2.7.2","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"6cd001aac01c4c8be21cee1f747f6553f6e9b1fc","_id":"cherow@1.3.10","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-M2INTTTAqjt6muujtqdaMoB5HyoRGJaRDnPKOr5kVMOJu7YnJi+Bx1X/wzpbP/WfyU7u++3wB6Zc/8RT2sY8qA==","shasum":"847606212c1e75478c6056deb4e65b0c03cc7306","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.3.10.tgz","fileCount":27,"unpackedSize":885099,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE/VjUU7AGKKhYEOtzLocC9JgL5bpM3Ui2njNBMwFN9+AiEA18bmIETwFbt1tMTKPVYV9sqlMNYIQ8v7Wc9tJ0+8qPs="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.3.10_1522216143230_0.47751463407673955"},"_hasShrinkwrap":false},"5.4.2018724":{"name":"cherow","version":"5.4.2018724","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"lib/cherow.js","types":"lib/cherow.d.ts","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant","lightweight"],"files":["dist","lib","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","build:lib":"tsc --skipLibCheck -t es2015 --m commonjs && rimraf lib && shx cp -R build/src lib","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf lib dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","bench":"node scripts/micro-bench","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/mocha":"^2.2.48","@types/node":"^9.4.6","coveralls":"^3.0.0","cross-env":"^5.1.3","mocha":"^5.0.5","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.57.1","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","shx":"^0.2.2","ts-node":"^5.0.1","tslint":"5.9.1","typescript":"^2.8.1","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{"clean-assert":"^2.0.0","npm":"^5.8.0","update":"^0.7.4"},"readme":"# Cherow\r\n\r\n[![NPM version](https://img.shields.io/npm/v/cherow.svg)](https://www.npmjs.com/package/cherow)\r\n[![Gitter chat](https://badges.gitter.im/gitterHQ/gitter.png)](https://gitter.im/cherow/cherow)\r\n[![Build Status](https://travis-ci.org/cherow/cherow.svg?branch=master)](https://travis-ci.org/cherow/cherow)\r\n[![Build status](https://ci.appveyor.com/api/projects/status/pkydnkv0deckns5l/branch/master?svg=true)](https://ci.appveyor.com/project/Kflash/cherow/branch/master)\r\n[![CircleCI](https://circleci.com/gh/cherow/cherow.svg?style=svg)](https://circleci.com/gh/cherow/cherow)\r\n[![Coverage Status](https://coveralls.io/repos/github/cherow/cherow/badge.svg?branch=master)](https://coveralls.io/github/cherow/cherow?branch=master)\r\n\r\n**In active development!!**\r\n\r\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\r\n\r\n## Features\r\n\r\n* Conforms to the standard ECMAScript® 2018 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification \r\n* Supports Stage 3 proposals via option\r\n* Optionally track syntactic node locations\r\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\r\n* Very well tested (~23 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\r\n* Lightweight - 62 KB minified\r\n\r\n## ESNext features\r\n\r\n`Stage 3` features support. These need to be enabled with the `next` option. \r\n\r\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\r\n* [Class field declarations for JavaScript](https://github.com/tc39/proposal-class-fields)\r\n* [Numeric Separators](https://github.com/tc39/proposal-numeric-separator)\r\n* [Private methods and getter/setters for JavaScript classes](https://github.com/tc39/proposal-private-methods)\r\n* [Optional catch binding](https://github.com/tc39/proposal-optional-catch-binding)\r\n* [JSON Superset](https://github.com/tc39/proposal-json-superset)\r\n* [BigInt](https://github.com/tc39/proposal-bigint)\r\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\r\n\r\n\r\n## Builds\r\n\r\nCherow contains 3 different builds:\r\n\r\n| Name        | Description |\r\n| ----------- | ------------------------------------------------------------ |\r\n| `Stable`    | Stable release |\r\n| `Next`      | Has the `next` option enabled by default, and support all latest ECMAScript proposals. |\r\n| `Bleeding`  | The active development branch. You can and will expect bugs with this branch because it's not stable |\r\n\r\n## API\r\n\r\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules) and this is achieved by choosing [`parseScript`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) function to parse a script and [`parseModule`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) function to parse a module.\r\n\r\n\r\nHere is a quick example:\r\n\r\n```js\r\n\r\ncherow.parseScript('const fooBar = 123;', { ranges: true });\r\n\r\n```\r\n\r\nThis will return when serialized in json:\r\n\r\n```js\r\n{\r\n    \"type\": \"Program\",\r\n    \"sourceType\": \"script\",\r\n    \"body\": [\r\n        {\r\n            \"type\": \"VariableDeclaration\",\r\n            \"declarations\": [\r\n                {\r\n                    \"type\": \"VariableDeclarator\",\r\n                    \"init\": {\r\n                        \"type\": \"Literal\",\r\n                        \"value\": 123,\r\n                        \"start\": 15,\r\n                        \"end\": 18\r\n                    },\r\n                    \"id\": {\r\n                        \"type\": \"Identifier\",\r\n                        \"name\": \"fooBar\",\r\n                        \"start\": 6,\r\n                        \"end\": 12\r\n                    },\r\n                    \"start\": 6,\r\n                    \"end\": 18\r\n                }\r\n            ],\r\n            \"kind\": \"const\",\r\n            \"start\": 0,\r\n            \"end\": 19\r\n        }\r\n    ],\r\n    \"start\": 0,\r\n    \"end\": 19\r\n}\r\n```\r\n\r\n## Options\r\n\r\nThere is a second argument to both methods that allows you to specify various options:\r\n\r\n| Option        | Description |\r\n| ----------- | ------------------------------------------------------------ |\r\n| `delegate`        | Accepts a callback function to be invoked for each syntax node (as the node is constructed) |\r\n| `loc      `       | Attach line/column location information to each node |\r\n| `ranges`          | Append start and end offsets to each node |\r\n| `globalReturn`    | Allow return in the global scope |\r\n| `skipShebang`     | Allow to skip shebang - '#' |\r\n| `impliedStrict`   | Enable implied strict mode |\r\n| `next`            | Enable stage 3 support (*ESNext*)  |\r\n| `source`          | Set to true to record the source file in every node's `loc` object when the `loc option` is set.  |\r\n| `raw`             | Attach raw property to each literal node    |\r\n\r\n\r\n# Modules\r\n\r\nIn Cherow this replace the traditional plugin system, and let you import the parser instance and\r\ndevelop your own functions with it, and / or re-use existing one.\r\n\r\nExample:\r\n\r\n```js\r\nimport { parser, scanSignedInteger, parseScript, parserModule } from 'cherow';\r\n\r\nfunction doWhatYouWant(parser, context) {\r\n    // do some magic with numbers\r\n    value = scanSignedInteger(parser, context); / '+', '-'\r\n\r\n    // ...\r\n}\r\n\r\n```\r\n\r\n## Performance \r\n\r\n\r\n#### Benchmark #1\r\n\r\n![Alt text](bench.png?raw=true \"Title\")\r\n\r\n#### Benchmark #2\r\n\r\n**Note!** This Jazzle parser couldn't parse the TypeScript library, so the results is not 100%.\r\n\r\n![Alt text](bench1.png?raw=true \"Title\")\r\n","readmeFilename":"README.md","gitHead":"7608d22dc32fb91cdd87f9cb53c670b24a57c265","_id":"cherow@5.4.2018724","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-GJyHzuIS3p6UiBarvj81URRGiCLsCeImSU6rtb/d7zgg9wEzZsmOKIsf3jV6buNR5IRg8GcDvkKizhU8UH19kQ==","shasum":"39cb5a0534063c4940f025f83b8ee392191c660a","tarball":"https://registry.npmjs.org/cherow/-/cherow-5.4.2018724.tgz","fileCount":9,"unpackedSize":567145,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDnx9Jx5+3FlTG/zuWelHLBbpQCsm1aK2LldeWAqJi5lwIhAJusZq3U2iNsfsxnVdlPBA96Y1dG3FG21j2Kg4ZZa4EW"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_5.4.2018724_1523191053912_0.9137690856609806"},"_hasShrinkwrap":false},"4.9.2018924":{"name":"cherow","version":"4.9.2018924","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"lib/cherow.js","types":"lib/cherow.d.ts","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant","lightweight"],"files":["dist","lib","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","build:lib":"tsc --skipLibCheck -t es2015 --m commonjs && rimraf lib && shx cp -R build/src lib","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf lib dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","bench":"node scripts/micro-bench","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/mocha":"^2.2.48","@types/node":"^9.4.6","coveralls":"^3.0.0","cross-env":"^5.1.3","mocha":"^5.0.5","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.57.1","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","shx":"^0.2.2","ts-node":"^5.0.1","tslint":"5.9.1","typescript":"^2.8.1","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{"clean-assert":"^2.0.0","npm":"^5.8.0","update":"^0.7.4"},"readme":"# Cherow\r\n\r\n[![NPM version](https://img.shields.io/npm/v/cherow.svg)](https://www.npmjs.com/package/cherow)\r\n[![Gitter chat](https://badges.gitter.im/gitterHQ/gitter.png)](https://gitter.im/cherow/cherow)\r\n[![Build Status](https://travis-ci.org/cherow/cherow.svg?branch=master)](https://travis-ci.org/cherow/cherow)\r\n[![Build status](https://ci.appveyor.com/api/projects/status/pkydnkv0deckns5l/branch/master?svg=true)](https://ci.appveyor.com/project/Kflash/cherow/branch/master)\r\n[![CircleCI](https://circleci.com/gh/cherow/cherow.svg?style=svg)](https://circleci.com/gh/cherow/cherow)\r\n[![Coverage Status](https://coveralls.io/repos/github/cherow/cherow/badge.svg?branch=master)](https://coveralls.io/github/cherow/cherow?branch=master)\r\n\r\n**In active development!!**\r\n\r\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\r\n\r\n## Features\r\n\r\n* Conforms to the standard ECMAScript® 2018 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification \r\n* Supports Stage 3 proposals via option\r\n* Optionally track syntactic node locations\r\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\r\n* Very well tested (~23 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\r\n* Lightweight - 62 KB minified\r\n\r\n## ESNext features\r\n\r\n`Stage 3` features support. These need to be enabled with the `next` option. \r\n\r\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\r\n* [Class field declarations for JavaScript](https://github.com/tc39/proposal-class-fields)\r\n* [Numeric Separators](https://github.com/tc39/proposal-numeric-separator)\r\n* [Private methods and getter/setters for JavaScript classes](https://github.com/tc39/proposal-private-methods)\r\n* [Optional catch binding](https://github.com/tc39/proposal-optional-catch-binding)\r\n* [JSON Superset](https://github.com/tc39/proposal-json-superset)\r\n* [BigInt](https://github.com/tc39/proposal-bigint)\r\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\r\n\r\n\r\n## Builds\r\n\r\nCherow contains 3 different builds:\r\n\r\n| Name        | Description |\r\n| ----------- | ------------------------------------------------------------ |\r\n| `Stable`    | Stable release |\r\n| `Next`      | Has the `next` option enabled by default, and support all latest ECMAScript proposals. |\r\n| `Bleeding`  | The active development branch. You can and will expect bugs with this branch because it's not stable |\r\n\r\n## API\r\n\r\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules) and this is achieved by choosing [`parseScript`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) function to parse a script and [`parseModule`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) function to parse a module.\r\n\r\n\r\nHere is a quick example:\r\n\r\n```js\r\n\r\ncherow.parseScript('const fooBar = 123;', { ranges: true });\r\n\r\n```\r\n\r\nThis will return when serialized in json:\r\n\r\n```js\r\n{\r\n    \"type\": \"Program\",\r\n    \"sourceType\": \"script\",\r\n    \"body\": [\r\n        {\r\n            \"type\": \"VariableDeclaration\",\r\n            \"declarations\": [\r\n                {\r\n                    \"type\": \"VariableDeclarator\",\r\n                    \"init\": {\r\n                        \"type\": \"Literal\",\r\n                        \"value\": 123,\r\n                        \"start\": 15,\r\n                        \"end\": 18\r\n                    },\r\n                    \"id\": {\r\n                        \"type\": \"Identifier\",\r\n                        \"name\": \"fooBar\",\r\n                        \"start\": 6,\r\n                        \"end\": 12\r\n                    },\r\n                    \"start\": 6,\r\n                    \"end\": 18\r\n                }\r\n            ],\r\n            \"kind\": \"const\",\r\n            \"start\": 0,\r\n            \"end\": 19\r\n        }\r\n    ],\r\n    \"start\": 0,\r\n    \"end\": 19\r\n}\r\n```\r\n\r\n## Options\r\n\r\nThere is a second argument to both methods that allows you to specify various options:\r\n\r\n| Option        | Description |\r\n| ----------- | ------------------------------------------------------------ |\r\n| `delegate`        | Accepts a callback function to be invoked for each syntax node (as the node is constructed) |\r\n| `loc      `       | Attach line/column location information to each node |\r\n| `ranges`          | Append start and end offsets to each node |\r\n| `globalReturn`    | Allow return in the global scope |\r\n| `skipShebang`     | Allow to skip shebang - '#' |\r\n| `impliedStrict`   | Enable implied strict mode |\r\n| `next`            | Enable stage 3 support (*ESNext*)  |\r\n| `source`          | Set to true to record the source file in every node's `loc` object when the `loc option` is set.  |\r\n| `raw`             | Attach raw property to each literal node    |\r\n\r\n\r\n# Modules\r\n\r\nIn Cherow this replace the traditional plugin system, and let you import the parser instance and\r\ndevelop your own functions with it, and / or re-use existing one.\r\n\r\nExample:\r\n\r\n```js\r\nimport { parser, scanSignedInteger, parseScript, parserModule } from 'cherow';\r\n\r\nfunction doWhatYouWant(parser, context) {\r\n    // do some magic with numbers\r\n    value = scanSignedInteger(parser, context); / '+', '-'\r\n\r\n    // ...\r\n}\r\n\r\n```\r\n\r\n## Performance \r\n\r\n\r\n#### Benchmark #1\r\n\r\n![Alt text](bench.png?raw=true \"Title\")\r\n\r\n#### Benchmark #2\r\n\r\n**Note!** This Jazzle parser couldn't parse the TypeScript library, so the results is not 100%.\r\n\r\n![Alt text](bench1.png?raw=true \"Title\")\r\n","readmeFilename":"README.md","gitHead":"7608d22dc32fb91cdd87f9cb53c670b24a57c265","_id":"cherow@4.9.2018924","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-yZ8Br9pt0nYz8z630IYCzDN0eWH5aIpmszEpCIzCaZYsxE02iHaLSSoBvV9xj4rQFy9hEZmXe8cx+V+oQt4YuA==","shasum":"4730943332a584d5467664a19feb37814a5a87ad","tarball":"https://registry.npmjs.org/cherow/-/cherow-4.9.2018924.tgz","fileCount":43,"unpackedSize":882456,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDOEkKM0M2LM6DnM5QSElwkbGAwYm/9h20NdFLbOq5/igIgTlDBatMR6K4t+0VMvUBH9ZKwOrTJj8Y3t99p5uG+ccs="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_4.9.2018924_1523191210407_0.11833314603193346"},"_hasShrinkwrap":false},"4.10.20181123":{"name":"cherow","version":"4.10.20181123","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"lib/cherow.js","types":"lib/cherow.d.ts","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant","lightweight"],"files":["dist","lib","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","build:lib":"tsc --skipLibCheck -t es2015 --m commonjs && rimraf lib && shx cp -R build/src lib","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf lib dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","bench":"node scripts/micro-bench","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/mocha":"^2.2.48","@types/node":"^9.4.6","coveralls":"^3.0.0","cross-env":"^5.1.3","mocha":"^5.0.5","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.57.1","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","shx":"^0.2.2","ts-node":"^5.0.1","tslint":"5.9.1","typescript":"^2.8.1","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{"clean-assert":"^2.0.0","npm":"^5.8.0","update":"^0.7.4"},"gitHead":"e49c33bcf51999b13f2e121278fbc5ff7df8e553","readme":"# Cherow\r\n\r\n[![NPM version](https://img.shields.io/npm/v/cherow.svg)](https://www.npmjs.com/package/cherow)\r\n[![Gitter chat](https://badges.gitter.im/gitterHQ/gitter.png)](https://gitter.im/cherow/cherow)\r\n[![Build Status](https://travis-ci.org/cherow/cherow.svg?branch=master)](https://travis-ci.org/cherow/cherow)\r\n[![Build status](https://ci.appveyor.com/api/projects/status/pkydnkv0deckns5l/branch/master?svg=true)](https://ci.appveyor.com/project/Kflash/cherow/branch/master)\r\n[![CircleCI](https://circleci.com/gh/cherow/cherow.svg?style=svg)](https://circleci.com/gh/cherow/cherow)\r\n[![Coverage Status](https://coveralls.io/repos/github/cherow/cherow/badge.svg?branch=master)](https://coveralls.io/github/cherow/cherow?branch=master)\r\n\r\n**In active development!!**\r\n\r\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\r\n\r\n## Features\r\n\r\n* Conforms to the standard ECMAScript® 2018 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification \r\n* Supports Stage 3 proposals via option\r\n* Optionally track syntactic node locations\r\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\r\n* Very well tested (~23 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\r\n* Lightweight - 62 KB minified\r\n\r\n## ESNext features\r\n\r\n`Stage 3` features support. These need to be enabled with the `next` option. \r\n\r\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\r\n* [Class field declarations for JavaScript](https://github.com/tc39/proposal-class-fields)\r\n* [Numeric Separators](https://github.com/tc39/proposal-numeric-separator)\r\n* [Private methods and getter/setters for JavaScript classes](https://github.com/tc39/proposal-private-methods)\r\n* [Optional catch binding](https://github.com/tc39/proposal-optional-catch-binding)\r\n* [JSON Superset](https://github.com/tc39/proposal-json-superset)\r\n* [BigInt](https://github.com/tc39/proposal-bigint)\r\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\r\n\r\n\r\n## Builds\r\n\r\nCherow contains 3 different builds:\r\n\r\n| Name        | Description |\r\n| ----------- | ------------------------------------------------------------ |\r\n| `Stable`    | Stable release |\r\n| `Next`      | Has the `next` option enabled by default, and support all latest ECMAScript proposals. |\r\n| `Bleeding`  | The active development branch. You can and will expect bugs with this branch because it's not stable |\r\n\r\n## API\r\n\r\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules) and this is achieved by choosing [`parseScript`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) function to parse a script and [`parseModule`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) function to parse a module.\r\n\r\n\r\nHere is a quick example:\r\n\r\n```js\r\n\r\ncherow.parseScript('const fooBar = 123;', { ranges: true });\r\n\r\n```\r\n\r\nThis will return when serialized in json:\r\n\r\n```js\r\n{\r\n    \"type\": \"Program\",\r\n    \"sourceType\": \"script\",\r\n    \"body\": [\r\n        {\r\n            \"type\": \"VariableDeclaration\",\r\n            \"declarations\": [\r\n                {\r\n                    \"type\": \"VariableDeclarator\",\r\n                    \"init\": {\r\n                        \"type\": \"Literal\",\r\n                        \"value\": 123,\r\n                        \"start\": 15,\r\n                        \"end\": 18\r\n                    },\r\n                    \"id\": {\r\n                        \"type\": \"Identifier\",\r\n                        \"name\": \"fooBar\",\r\n                        \"start\": 6,\r\n                        \"end\": 12\r\n                    },\r\n                    \"start\": 6,\r\n                    \"end\": 18\r\n                }\r\n            ],\r\n            \"kind\": \"const\",\r\n            \"start\": 0,\r\n            \"end\": 19\r\n        }\r\n    ],\r\n    \"start\": 0,\r\n    \"end\": 19\r\n}\r\n```\r\n\r\n## Options\r\n\r\nThere is a second argument to both methods that allows you to specify various options:\r\n\r\n| Option        | Description |\r\n| ----------- | ------------------------------------------------------------ |\r\n| `delegate`        | Accepts a callback function to be invoked for each syntax node (as the node is constructed) |\r\n| `loc      `       | Attach line/column location information to each node |\r\n| `ranges`          | Append start and end offsets to each node |\r\n| `globalReturn`    | Allow return in the global scope |\r\n| `skipShebang`     | Allow to skip shebang - '#' |\r\n| `impliedStrict`   | Enable implied strict mode |\r\n| `next`            | Enable stage 3 support (*ESNext*)  |\r\n| `source`          | Set to true to record the source file in every node's `loc` object when the `loc option` is set.  |\r\n| `raw`             | Attach raw property to each literal node    |\r\n\r\n\r\n# Modules\r\n\r\nIn Cherow this replace the traditional plugin system, and let you import the parser instance and\r\ndevelop your own functions with it, and / or re-use existing one.\r\n\r\nExample:\r\n\r\n```js\r\nimport { parser, scanSignedInteger, parseScript, parserModule } from 'cherow';\r\n\r\nfunction doWhatYouWant(parser, context) {\r\n    // do some magic with numbers\r\n    value = scanSignedInteger(parser, context); / '+', '-'\r\n\r\n    // ...\r\n}\r\n\r\n```\r\n\r\n## Performance \r\n\r\n\r\n#### Benchmark #1\r\n\r\n![Alt text](bench.png?raw=true \"Title\")\r\n\r\n#### Benchmark #2\r\n\r\n**Note!** This Jazzle parser couldn't parse the TypeScript library, so the results is not 100%.\r\n\r\n![Alt text](bench1.png?raw=true \"Title\")\r\n","readmeFilename":"README.md","_id":"cherow@4.10.20181123","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-wzOvcnaF7ghVQuFoFuGJkEFekEzwSKBx2feYnSYgVE0tWrq1jEwMqfM5+IuxTfzoAcUZx6WL+ZKMqe6izTk8uQ==","shasum":"03e6e6025dec65157e449f50f38f47eecabc8e1a","tarball":"https://registry.npmjs.org/cherow/-/cherow-4.10.20181123.tgz","fileCount":43,"unpackedSize":860900,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGvLvML213ZhTuuo40EGActuM8qp1SIOiJwUkv0hzNTlAiEAle8xpWbsaTBsZbB1wKMaD3N8LjjaIcd+yhmGjp3hAIg="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_4.10.20181123_1523244555794_0.05406168545908652"},"_hasShrinkwrap":false},"4.10.2018126":{"name":"cherow","version":"4.10.2018126","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"lib/cherow.js","types":"lib/cherow.d.ts","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant","lightweight"],"files":["dist","lib","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","build:lib":"tsc --skipLibCheck -t es2015 --m commonjs && rimraf lib && shx cp -R build/src lib","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf lib dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","bench":"node scripts/micro-bench","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/mocha":"^2.2.48","@types/node":"^9.4.6","coveralls":"^3.0.0","cross-env":"^5.1.3","mocha":"^5.0.5","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.57.1","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","shx":"^0.2.2","ts-node":"^5.0.1","tslint":"5.9.1","typescript":"^2.8.1","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{"clean-assert":"^2.0.0","npm":"^5.8.0","update":"^0.7.4"},"readme":"# Cherow\r\n\r\n[![NPM version](https://img.shields.io/npm/v/cherow.svg)](https://www.npmjs.com/package/cherow)\r\n[![Gitter chat](https://badges.gitter.im/gitterHQ/gitter.png)](https://gitter.im/cherow/cherow)\r\n[![Build Status](https://travis-ci.org/cherow/cherow.svg?branch=master)](https://travis-ci.org/cherow/cherow)\r\n[![Build status](https://ci.appveyor.com/api/projects/status/pkydnkv0deckns5l/branch/master?svg=true)](https://ci.appveyor.com/project/Kflash/cherow/branch/master)\r\n[![CircleCI](https://circleci.com/gh/cherow/cherow.svg?style=svg)](https://circleci.com/gh/cherow/cherow)\r\n[![Coverage Status](https://coveralls.io/repos/github/cherow/cherow/badge.svg?branch=master)](https://coveralls.io/github/cherow/cherow?branch=master)\r\n\r\n**In active development!!**\r\n\r\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\r\n\r\n## Features\r\n\r\n* Conforms to the standard ECMAScript® 2018 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification \r\n* Supports Stage 3 proposals via option\r\n* Optionally track syntactic node locations\r\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\r\n* Very well tested (~23 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\r\n* Lightweight - 62 KB minified\r\n\r\n## ESNext features\r\n\r\n`Stage 3` features support. These need to be enabled with the `next` option. \r\n\r\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\r\n* [Class field declarations for JavaScript](https://github.com/tc39/proposal-class-fields)\r\n* [Numeric Separators](https://github.com/tc39/proposal-numeric-separator)\r\n* [Private methods and getter/setters for JavaScript classes](https://github.com/tc39/proposal-private-methods)\r\n* [Optional catch binding](https://github.com/tc39/proposal-optional-catch-binding)\r\n* [JSON Superset](https://github.com/tc39/proposal-json-superset)\r\n* [BigInt](https://github.com/tc39/proposal-bigint)\r\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\r\n\r\n\r\n## Builds\r\n\r\nCherow contains 3 different builds:\r\n\r\n| Name        | Description |\r\n| ----------- | ------------------------------------------------------------ |\r\n| `Stable`    | Stable release |\r\n| `Next`      | Has the `next` option enabled by default, and support all latest ECMAScript proposals. |\r\n| `Bleeding`  | The active development branch. You can and will expect bugs with this branch because it's not stable |\r\n\r\n## API\r\n\r\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules) and this is achieved by choosing [`parseScript`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) function to parse a script and [`parseModule`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) function to parse a module.\r\n\r\n\r\nHere is a quick example:\r\n\r\n```js\r\n\r\ncherow.parseScript('const fooBar = 123;', { ranges: true });\r\n\r\n```\r\n\r\nThis will return when serialized in json:\r\n\r\n```js\r\n{\r\n    \"type\": \"Program\",\r\n    \"sourceType\": \"script\",\r\n    \"body\": [\r\n        {\r\n            \"type\": \"VariableDeclaration\",\r\n            \"declarations\": [\r\n                {\r\n                    \"type\": \"VariableDeclarator\",\r\n                    \"init\": {\r\n                        \"type\": \"Literal\",\r\n                        \"value\": 123,\r\n                        \"start\": 15,\r\n                        \"end\": 18\r\n                    },\r\n                    \"id\": {\r\n                        \"type\": \"Identifier\",\r\n                        \"name\": \"fooBar\",\r\n                        \"start\": 6,\r\n                        \"end\": 12\r\n                    },\r\n                    \"start\": 6,\r\n                    \"end\": 18\r\n                }\r\n            ],\r\n            \"kind\": \"const\",\r\n            \"start\": 0,\r\n            \"end\": 19\r\n        }\r\n    ],\r\n    \"start\": 0,\r\n    \"end\": 19\r\n}\r\n```\r\n\r\n## Options\r\n\r\nThere is a second argument to both methods that allows you to specify various options:\r\n\r\n| Option        | Description |\r\n| ----------- | ------------------------------------------------------------ |\r\n| `delegate`        | Accepts a callback function to be invoked for each syntax node (as the node is constructed) |\r\n| `loc      `       | Attach line/column location information to each node |\r\n| `ranges`          | Append start and end offsets to each node |\r\n| `globalReturn`    | Allow return in the global scope |\r\n| `skipShebang`     | Allow to skip shebang - '#' |\r\n| `impliedStrict`   | Enable implied strict mode |\r\n| `next`            | Enable stage 3 support (*ESNext*)  |\r\n| `source`          | Set to true to record the source file in every node's `loc` object when the `loc option` is set.  |\r\n| `raw`             | Attach raw property to each literal node    |\r\n\r\n\r\n# Modules\r\n\r\nIn Cherow this replace the traditional plugin system, and let you import the parser instance and\r\ndevelop your own functions with it, and / or re-use existing one.\r\n\r\nExample:\r\n\r\n```js\r\nimport { parser, scanSignedInteger, parseScript, parserModule } from 'cherow';\r\n\r\nfunction doWhatYouWant(parser, context) {\r\n    // do some magic with numbers\r\n    value = scanSignedInteger(parser, context); / '+', '-'\r\n\r\n    // ...\r\n}\r\n\r\n```\r\n\r\n## Performance \r\n\r\n\r\n#### Benchmark #1\r\n\r\n![Alt text](bench.png?raw=true \"Title\")\r\n\r\n#### Benchmark #2\r\n\r\n**Note!** This Jazzle parser couldn't parse the TypeScript library, so the results is not 100%.\r\n\r\n![Alt text](bench1.png?raw=true \"Title\")\r\n","readmeFilename":"README.md","gitHead":"3a7ef3bd622024da2ba01b0f85bbd1369af25bf4","_id":"cherow@4.10.2018126","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-6dkisk1UvZoFrOTWjw8KmQ8cCoaLYYLVY7+NyVXF4tPhNDXCs0n+GjYB85EpqyasTBnjFjcKSV3wbGw16xM0rg==","shasum":"bcad5bd7dfd627c48cbb20aacdd1373c3a9aba76","tarball":"https://registry.npmjs.org/cherow/-/cherow-4.10.2018126.tgz","fileCount":43,"unpackedSize":893462,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDxDHQFEzlvKTuilDNTCLNCssnjvmyOmVR/Zzkjlgpr/AiEAi6fYULz+gLcsTIPD/cyvn+KC9Wj+JwXbohJIOi+Sjt8="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_4.10.2018126_1523251976635_0.1835313314406224"},"_hasShrinkwrap":false},"4.10.2018704":{"name":"cherow","version":"4.10.2018704","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"lib/cherow.js","types":"lib/cherow.d.ts","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant","lightweight"],"files":["dist","lib","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","build:lib":"tsc --skipLibCheck -t es2015 --m commonjs && rimraf lib && shx cp -R build/src lib","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf lib dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","bench":"node scripts/micro-bench","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/mocha":"^2.2.48","@types/node":"^9.4.6","coveralls":"^3.0.0","cross-env":"^5.1.3","mocha":"^5.0.5","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.57.1","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","shx":"^0.2.2","ts-node":"^5.0.1","tslint":"5.9.1","typescript":"^2.8.1","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{"clean-assert":"^2.0.0","npm":"^5.8.0","update":"^0.7.4"},"readme":"# Cherow\r\n\r\n[![NPM version](https://img.shields.io/npm/v/cherow.svg)](https://www.npmjs.com/package/cherow)\r\n[![Gitter chat](https://badges.gitter.im/gitterHQ/gitter.png)](https://gitter.im/cherow/cherow)\r\n[![Build Status](https://travis-ci.org/cherow/cherow.svg?branch=master)](https://travis-ci.org/cherow/cherow)\r\n[![Build status](https://ci.appveyor.com/api/projects/status/pkydnkv0deckns5l/branch/master?svg=true)](https://ci.appveyor.com/project/Kflash/cherow/branch/master)\r\n[![CircleCI](https://circleci.com/gh/cherow/cherow.svg?style=svg)](https://circleci.com/gh/cherow/cherow)\r\n[![Coverage Status](https://coveralls.io/repos/github/cherow/cherow/badge.svg?branch=master)](https://coveralls.io/github/cherow/cherow?branch=master)\r\n\r\n**Active development branch**\r\n\r\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\r\n\r\n## Features\r\n\r\n* Conforms to the standard ECMAScript® 2018 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification \r\n* Supports Stage 3 proposals via option\r\n* Optionally track syntactic node locations\r\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\r\n* Very well tested (~43 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\r\n* Lightweight - 62 KB minified\r\n\r\n## ESNext features\r\n\r\n`Stage 3` features support. These need to be enabled with the `next` option. \r\n\r\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\r\n* [Class field declarations for JavaScript](https://github.com/tc39/proposal-class-fields)\r\n* [Numeric Separators](https://github.com/tc39/proposal-numeric-separator)\r\n* [Private methods and getter/setters for JavaScript classes](https://github.com/tc39/proposal-private-methods)\r\n* [Optional catch binding](https://github.com/tc39/proposal-optional-catch-binding)\r\n* [JSON Superset](https://github.com/tc39/proposal-json-superset)\r\n* [BigInt](https://github.com/tc39/proposal-bigint)\r\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\r\n\r\n\r\n## Builds\r\n\r\nCherow contains 3 different builds:\r\n\r\n| Name        | Description |\r\n| ----------- | ------------------------------------------------------------ |\r\n| `Stable`    | Stable release |\r\n| `Next`      | Has the `next` option enabled by default, and support all latest ECMAScript proposals. |\r\n| `Bleeding`  | The active development branch. You can and will expect bugs with this branch because it's not stable |\r\n\r\n## API\r\n\r\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules) and this is achieved by choosing [`parseScript`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) function to parse a script and [`parseModule`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) function to parse a module.\r\n\r\n\r\nHere is a quick example:\r\n\r\n```js\r\n\r\ncherow.parseScript('const fooBar = 123;', { ranges: true });\r\n\r\n```\r\n\r\nThis will return when serialized in json:\r\n\r\n```js\r\n{\r\n    \"type\": \"Program\",\r\n    \"sourceType\": \"script\",\r\n    \"body\": [\r\n        {\r\n            \"type\": \"VariableDeclaration\",\r\n            \"declarations\": [\r\n                {\r\n                    \"type\": \"VariableDeclarator\",\r\n                    \"init\": {\r\n                        \"type\": \"Literal\",\r\n                        \"value\": 123,\r\n                        \"start\": 15,\r\n                        \"end\": 18\r\n                    },\r\n                    \"id\": {\r\n                        \"type\": \"Identifier\",\r\n                        \"name\": \"fooBar\",\r\n                        \"start\": 6,\r\n                        \"end\": 12\r\n                    },\r\n                    \"start\": 6,\r\n                    \"end\": 18\r\n                }\r\n            ],\r\n            \"kind\": \"const\",\r\n            \"start\": 0,\r\n            \"end\": 19\r\n        }\r\n    ],\r\n    \"start\": 0,\r\n    \"end\": 19\r\n}\r\n```\r\n\r\n## Options\r\n\r\nThere is a second argument to both methods that allows you to specify various options:\r\n\r\n| Option        | Description |\r\n| ----------- | ------------------------------------------------------------ |\r\n| `delegate`        | Accepts a callback function to be invoked for each syntax node (as the node is constructed) |\r\n| `loc      `       | Attach line/column location information to each node |\r\n| `ranges`          | Append start and end offsets to each node |\r\n| `globalReturn`    | Allow return in the global scope |\r\n| `skipShebang`     | Allow to skip shebang - '#' |\r\n| `impliedStrict`   | Enable implied strict mode |\r\n| `next`            | Enable stage 3 support (*ESNext*)  |\r\n| `source`          | Set to true to record the source file in every node's `loc` object when the `loc option` is set.  |\r\n| `raw`             | Attach raw property to each literal node    |\r\n| `rawIdentifier`   | Attach raw property to each identifier node    |\r\n\r\n# Modules\r\n\r\nIn Cherow this replace the traditional plugin system, and let you import the parser instance and\r\ndevelop your own functions with it, and / or re-use existing one.\r\n\r\nExample:\r\n\r\n```js\r\nimport { parser, scanSignedInteger, parseScript, parserModule } from 'cherow';\r\n\r\nfunction doWhatYouWant(parser, context) {\r\n    // do some magic with numbers\r\n    value = scanSignedInteger(parser, context); / '+', '-'\r\n\r\n    // ...\r\n}\r\n\r\n```\r\n\r\n## Performance \r\n\r\n\r\n#### Benchmark #1\r\n\r\n![Alt text](bench.png?raw=true \"Title\")\r\n\r\n#### Benchmark #2\r\n\r\n**Note!** This Jazzle parser couldn't parse the TypeScript library, so the results is not 100%.\r\n\r\n![Alt text](bench1.png?raw=true \"Title\")\r\n","readmeFilename":"README.md","gitHead":"6a00daada1d96ce44dada1874826834c4a666869","_id":"cherow@4.10.2018704","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-pumlpgnBQL5cfxMngH4J+eTm5n2ho0F7NSpp1sVZ1TxLUv7jyZ6rUW2DMDACpC3Gzv7/Uyqnas42Bd0QDRTaPA==","shasum":"2dafe7ce9e646a767cc21e8dfa0da2e79bbafade","tarball":"https://registry.npmjs.org/cherow/-/cherow-4.10.2018704.tgz","fileCount":43,"unpackedSize":831337,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDBmTIFqmyShRYeBJwSjbnjy9nFthTkGXySjHZ6qG17awIhAOiIi/c50LYuo/W/yfHJVeXsQ0RxY3znVu0IrsmaFoO4"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_4.10.2018704_1523271819972_0.6896158101122454"},"_hasShrinkwrap":false},"4.11.2018715":{"name":"cherow","version":"4.11.2018715","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"lib/cherow.js","types":"lib/cherow.d.ts","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant","lightweight"],"files":["dist","lib","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","build:lib":"tsc --skipLibCheck -t es2015 --m commonjs && rimraf lib && shx cp -R build/src lib","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf lib dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","bench":"node scripts/micro-bench","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/mocha":"^2.2.48","@types/node":"^9.4.6","coveralls":"^3.0.0","cross-env":"^5.1.3","mocha":"^5.0.5","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.57.1","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","shx":"^0.2.2","ts-node":"^5.0.1","tslint":"5.9.1","typescript":"^2.8.1","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{"clean-assert":"^2.0.0","npm":"^5.8.0","update":"^0.7.4"},"readme":"# Cherow\r\n\r\n[![NPM version](https://img.shields.io/npm/v/cherow.svg)](https://www.npmjs.com/package/cherow)\r\n[![Gitter chat](https://badges.gitter.im/gitterHQ/gitter.png)](https://gitter.im/cherow/cherow)\r\n[![Build Status](https://travis-ci.org/cherow/cherow.svg?branch=master)](https://travis-ci.org/cherow/cherow)\r\n[![Build status](https://ci.appveyor.com/api/projects/status/pkydnkv0deckns5l/branch/master?svg=true)](https://ci.appveyor.com/project/Kflash/cherow/branch/master)\r\n[![CircleCI](https://circleci.com/gh/cherow/cherow.svg?style=svg)](https://circleci.com/gh/cherow/cherow)\r\n[![Coverage Status](https://coveralls.io/repos/github/cherow/cherow/badge.svg?branch=master)](https://coveralls.io/github/cherow/cherow?branch=master)\r\n\r\n**Active development branch**\r\n\r\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\r\n\r\n## Features\r\n\r\n* Conforms to the standard ECMAScript® 2018 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification \r\n* Supports Stage 3 proposals via option\r\n* Optionally track syntactic node locations\r\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\r\n* Very well tested (~43 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\r\n* Lightweight - 62 KB minified\r\n\r\n## ESNext features\r\n\r\n`Stage 3` features support. These need to be enabled with the `next` option. \r\n\r\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\r\n* [Class field declarations for JavaScript](https://github.com/tc39/proposal-class-fields)\r\n* [Numeric Separators](https://github.com/tc39/proposal-numeric-separator)\r\n* [Private methods and getter/setters for JavaScript classes](https://github.com/tc39/proposal-private-methods)\r\n* [Optional catch binding](https://github.com/tc39/proposal-optional-catch-binding)\r\n* [JSON Superset](https://github.com/tc39/proposal-json-superset)\r\n* [BigInt](https://github.com/tc39/proposal-bigint)\r\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\r\n\r\n\r\n## Builds\r\n\r\nCherow contains 3 different builds:\r\n\r\n| Name        | Description |\r\n| ----------- | ------------------------------------------------------------ |\r\n| `Stable`    | Stable release |\r\n| `Next`      | Has the `next` option enabled by default, and support all latest ECMAScript proposals. |\r\n| `Bleeding`  | The active development branch. You can and will expect bugs with this branch because it's not stable |\r\n\r\n## API\r\n\r\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules) and this is achieved by choosing [`parseScript`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) function to parse a script and [`parseModule`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) function to parse a module.\r\n\r\n\r\nHere is a quick example:\r\n\r\n```js\r\n\r\ncherow.parseScript('const fooBar = 123;', { ranges: true });\r\n\r\n```\r\n\r\nThis will return when serialized in json:\r\n\r\n```js\r\n{\r\n    \"type\": \"Program\",\r\n    \"sourceType\": \"script\",\r\n    \"body\": [\r\n        {\r\n            \"type\": \"VariableDeclaration\",\r\n            \"declarations\": [\r\n                {\r\n                    \"type\": \"VariableDeclarator\",\r\n                    \"init\": {\r\n                        \"type\": \"Literal\",\r\n                        \"value\": 123,\r\n                        \"start\": 15,\r\n                        \"end\": 18\r\n                    },\r\n                    \"id\": {\r\n                        \"type\": \"Identifier\",\r\n                        \"name\": \"fooBar\",\r\n                        \"start\": 6,\r\n                        \"end\": 12\r\n                    },\r\n                    \"start\": 6,\r\n                    \"end\": 18\r\n                }\r\n            ],\r\n            \"kind\": \"const\",\r\n            \"start\": 0,\r\n            \"end\": 19\r\n        }\r\n    ],\r\n    \"start\": 0,\r\n    \"end\": 19\r\n}\r\n```\r\n\r\n## Options\r\n\r\nThere is a second argument to both methods that allows you to specify various options:\r\n\r\n| Option        | Description |\r\n| ----------- | ------------------------------------------------------------ |\r\n| `delegate`        | Accepts a callback function to be invoked for each syntax node (as the node is constructed) |\r\n| `loc      `       | Attach line/column location information to each node |\r\n| `ranges`          | Append start and end offsets to each node |\r\n| `globalReturn`    | Allow return in the global scope |\r\n| `skipShebang`     | Allow to skip shebang - '#' |\r\n| `impliedStrict`   | Enable implied strict mode |\r\n| `next`            | Enable stage 3 support (*ESNext*)  |\r\n| `tolerant`        | Create a top-level error array containing all \"skipped\" errors |\r\n| `source`          | Set to true to record the source file in every node's `loc` object when the `loc option` is set.  |\r\n| `raw`             | Attach raw property to each literal node    |\r\n| `rawIdentifier`   | Attach raw property to each identifier node    |\r\n\r\n# Modules\r\n\r\nIn Cherow this replace the traditional plugin system, and let you import the parser instance and\r\ndevelop your own functions with it, and / or re-use existing one.\r\n\r\nExample:\r\n\r\n```js\r\nimport { parser, scanSignedInteger, parseScript, parserModule } from 'cherow';\r\n\r\nfunction doWhatYouWant(parser, context) {\r\n    // do some magic with numbers\r\n    value = scanSignedInteger(parser, context); / '+', '-'\r\n\r\n    // ...\r\n}\r\n\r\n```\r\n\r\n## Performance \r\n\r\n\r\n#### Benchmark #1\r\n\r\n![Alt text](bench.png?raw=true \"Title\")\r\n\r\n#### Benchmark #2\r\n\r\n**Note!** This Jazzle parser couldn't parse the TypeScript library, so the results is not 100%.\r\n\r\n![Alt text](bench1.png?raw=true \"Title\")\r\n","readmeFilename":"README.md","gitHead":"1635bf9027264de9f0b752031a4d12876236a651","_id":"cherow@4.11.2018715","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-RjEUEpxDxgTepkLbdptOyCUy14xOyvE7gOMNgqjRq9R9CpLSO1AQJxWMMREeKcVbNiIOrCGjk19ryskSweyh+w==","shasum":"c7230a0c108612c9ac1d6eb484199908e404a752","tarball":"https://registry.npmjs.org/cherow/-/cherow-4.11.2018715.tgz","fileCount":43,"unpackedSize":906572,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDqaT0IQNC5+ibzhTF7ZuFapHMocPANCPH3fuW6da5oqAiB8tRpzjf/nbMmzh3IMND9cml1SScuFfxd108SqzVoDIQ=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_4.11.2018715_1523316173475_0.4364355636780155"},"_hasShrinkwrap":false},"4.11.2018121":{"name":"cherow","version":"4.11.2018121","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"lib/cherow.js","types":"lib/cherow.d.ts","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant","lightweight"],"files":["dist","lib","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","build:lib":"tsc --skipLibCheck -t es2015 --m commonjs && rimraf lib && shx cp -R build/src lib","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf lib dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","bench":"node scripts/micro-bench","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/mocha":"^2.2.48","@types/node":"^9.4.6","coveralls":"^3.0.0","cross-env":"^5.1.3","clean-assert":"^2.0.0","mocha":"^5.0.5","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.57.1","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","shx":"^0.2.2","ts-node":"^5.0.1","tslint":"5.9.1","typescript":"^2.8.1","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"readme":"# Cherow\r\n\r\n[![NPM version](https://img.shields.io/npm/v/cherow.svg)](https://www.npmjs.com/package/cherow)\r\n[![Gitter chat](https://badges.gitter.im/gitterHQ/gitter.png)](https://gitter.im/cherow/cherow)\r\n[![Build Status](https://travis-ci.org/cherow/cherow.svg?branch=bleeding)](https://travis-ci.org/cherow/cherow)\r\n[![Build status](https://ci.appveyor.com/api/projects/status/pkydnkv0deckns5l/branch/bleeding?svg=true)](https://ci.appveyor.com/project/Kflash/cherow/branch/bleeding)\r\n[![CircleCI](https://circleci.com/gh/cherow/cherow.svg?style=svg)](https://circleci.com/gh/cherow/cherow)\r\n[![Coverage Status](https://coveralls.io/repos/github/cherow/cherow/badge.svg?branch=master)](https://coveralls.io/github/cherow/cherow?branch=master)\r\n\r\n**Active development branch**\r\n\r\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\r\n\r\n## Features\r\n\r\n* Conforms to the standard ECMAScript® 2018 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification \r\n* Supports Stage 3 proposals via option\r\n* Optionally track syntactic node locations\r\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\r\n* Very well tested (~43 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\r\n* Lightweight - 62 KB minified\r\n\r\n## ESNext features\r\n\r\n`Stage 3` features support. These need to be enabled with the `next` option. \r\n\r\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\r\n* [Class field declarations for JavaScript](https://github.com/tc39/proposal-class-fields)\r\n* [Numeric Separators](https://github.com/tc39/proposal-numeric-separator)\r\n* [Private methods and getter/setters for JavaScript classes](https://github.com/tc39/proposal-private-methods)\r\n* [Optional catch binding](https://github.com/tc39/proposal-optional-catch-binding)\r\n* [JSON Superset](https://github.com/tc39/proposal-json-superset)\r\n* [BigInt](https://github.com/tc39/proposal-bigint)\r\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\r\n\r\n\r\n## Builds\r\n\r\nCherow contains 3 different builds:\r\n\r\n| Name        | Description |\r\n| ----------- | ------------------------------------------------------------ |\r\n| `Stable`    | Stable release |\r\n| `Next`      | Has the `next` option enabled by default, and support all latest ECMAScript proposals. |\r\n| `Bleeding`  | The active development branch. You can and will expect bugs with this branch because it's not stable |\r\n\r\n## API\r\n\r\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules) and this is achieved by choosing [`parseScript`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) function to parse a script and [`parseModule`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) function to parse a module.\r\n\r\n\r\nHere is a quick example:\r\n\r\n```js\r\n\r\ncherow.parseScript('const fooBar = 123;', { ranges: true });\r\n\r\n```\r\n\r\nThis will return when serialized in json:\r\n\r\n```js\r\n{\r\n    \"type\": \"Program\",\r\n    \"sourceType\": \"script\",\r\n    \"body\": [\r\n        {\r\n            \"type\": \"VariableDeclaration\",\r\n            \"declarations\": [\r\n                {\r\n                    \"type\": \"VariableDeclarator\",\r\n                    \"init\": {\r\n                        \"type\": \"Literal\",\r\n                        \"value\": 123,\r\n                        \"start\": 15,\r\n                        \"end\": 18\r\n                    },\r\n                    \"id\": {\r\n                        \"type\": \"Identifier\",\r\n                        \"name\": \"fooBar\",\r\n                        \"start\": 6,\r\n                        \"end\": 12\r\n                    },\r\n                    \"start\": 6,\r\n                    \"end\": 18\r\n                }\r\n            ],\r\n            \"kind\": \"const\",\r\n            \"start\": 0,\r\n            \"end\": 19\r\n        }\r\n    ],\r\n    \"start\": 0,\r\n    \"end\": 19\r\n}\r\n```\r\n\r\n## Options\r\n\r\nThere is a second argument to both methods that allows you to specify various options:\r\n\r\n| Option        | Description |\r\n| ----------- | ------------------------------------------------------------ |\r\n| `delegate`        | Accepts a callback function to be invoked for each syntax node (as the node is constructed) |\r\n| `loc      `       | Attach line/column location information to each node |\r\n| `ranges`          | Append start and end offsets to each node |\r\n| `globalReturn`    | Allow return in the global scope |\r\n| `skipShebang`     | Allow to skip shebang - '#' |\r\n| `impliedStrict`   | Enable implied strict mode |\r\n| `next`            | Enable stage 3 support (*ESNext*)  |\r\n| `tolerant`        | Create a top-level error array containing all \"skipped\" errors |\r\n| `source`          | Set to true to record the source file in every node's `loc` object when the `loc option` is set.  |\r\n| `raw`             | Attach raw property to each literal node    |\r\n| `rawIdentifier`   | Attach raw property to each identifier node    |\r\n\r\n# Modules\r\n\r\nIn Cherow this replace the traditional plugin system, and let you import the parser instance and\r\ndevelop your own functions with it, and / or re-use existing one.\r\n\r\nExample:\r\n\r\n```js\r\nimport { parser, scanSignedInteger, parseScript, parserModule } from 'cherow';\r\n\r\nfunction doWhatYouWant(parser, context) {\r\n    // do some magic with numbers\r\n    value = scanSignedInteger(parser, context); / '+', '-'\r\n\r\n    // ...\r\n}\r\n\r\n```\r\n\r\n## Performance \r\n\r\n\r\n#### Benchmark #1\r\n\r\n![Alt text](bench.png?raw=true \"Title\")\r\n\r\n#### Benchmark #2\r\n\r\n**Note!** This Jazzle parser couldn't parse the TypeScript library, so the results is not 100%.\r\n\r\n![Alt text](bench1.png?raw=true \"Title\")\r\n","readmeFilename":"README.md","gitHead":"7f97f5104927cb0947a6c80ca0b779e4aedacbc8","_id":"cherow@4.11.2018121","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-PGMJWnkyseY/e9g6xalnAldcY35Jl8wsFuWTLv3NfzDd45Mr0XBvsjnxA9eIL4izS2u3ZfHWxrUuCzYHtMvbFw==","shasum":"3cfc55c902d32c3bba3e7218423172ae866505b1","tarball":"https://registry.npmjs.org/cherow/-/cherow-4.11.2018121.tgz","fileCount":57,"unpackedSize":1078966,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAfLRC0pvIVA/Yp0funA+tT6LD5IkoP4OALdrfY2KgvxAiEA2w8++4+IfmAfPUUuT9XinU3EW8chzLjcwU4O/05o2xE="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_4.11.2018121_1523338090111_0.01928854976094785"},"_hasShrinkwrap":false},"4.11.2018950":{"name":"cherow","version":"4.11.2018950","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"lib/cherow.js","types":"lib/cherow.d.ts","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant","lightweight"],"files":["dist","lib","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","build:lib":"tsc --skipLibCheck -t es2015 --m commonjs && rimraf lib && shx cp -R build/src lib","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf lib dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","bench":"node scripts/micro-bench","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/mocha":"^2.2.48","@types/node":"^9.4.6","coveralls":"^3.0.0","cross-env":"^5.1.3","clean-assert":"^2.0.0","mocha":"^5.0.5","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.57.1","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","shx":"^0.2.2","ts-node":"^5.0.1","tslint":"5.9.1","typescript":"^2.8.1","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"d1e8d03a8bd36b4f9b1992145553faf1f5e94c92","readme":"# Cherow\r\n\r\n[![NPM version](https://img.shields.io/npm/v/cherow.svg)](https://www.npmjs.com/package/cherow)\r\n[![Gitter chat](https://badges.gitter.im/gitterHQ/gitter.png)](https://gitter.im/cherow/cherow)\r\n[![Build Status](https://travis-ci.org/cherow/cherow.svg?branch=bleeding)](https://travis-ci.org/cherow/cherow)\r\n[![Build status](https://ci.appveyor.com/api/projects/status/pkydnkv0deckns5l/branch/bleeding?svg=true)](https://ci.appveyor.com/project/Kflash/cherow/branch/bleeding)\r\n[![CircleCI](https://circleci.com/gh/cherow/cherow.svg?style=svg)](https://circleci.com/gh/cherow/cherow)\r\n[![Coverage Status](https://coveralls.io/repos/github/cherow/cherow/badge.svg?branch=master)](https://coveralls.io/github/cherow/cherow?branch=master)\r\n\r\n**Active development branch**\r\n\r\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\r\n\r\n## Features\r\n\r\n* Conforms to the standard ECMAScript® 2018 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification \r\n* Supports Stage 3 proposals via option\r\n* Optionally track syntactic node locations\r\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\r\n* Very well tested (~43 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\r\n* Lightweight - 62 KB minified\r\n\r\n## ESNext features\r\n\r\n`Stage 3` features support. These need to be enabled with the `next` option. \r\n\r\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\r\n* [Class field declarations for JavaScript](https://github.com/tc39/proposal-class-fields)\r\n* [Numeric Separators](https://github.com/tc39/proposal-numeric-separator)\r\n* [Private methods and getter/setters for JavaScript classes](https://github.com/tc39/proposal-private-methods)\r\n* [Optional catch binding](https://github.com/tc39/proposal-optional-catch-binding)\r\n* [JSON Superset](https://github.com/tc39/proposal-json-superset)\r\n* [BigInt](https://github.com/tc39/proposal-bigint)\r\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\r\n\r\n\r\n## Builds\r\n\r\nCherow contains 3 different builds:\r\n\r\n| Name        | Description |\r\n| ----------- | ------------------------------------------------------------ |\r\n| `Stable`    | Stable release |\r\n| `Next`      | Has the `next` option enabled by default, and support all latest ECMAScript proposals. |\r\n| `Bleeding`  | The active development branch. You can and will expect bugs with this branch because it's not stable |\r\n\r\n## API\r\n\r\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules) and this is achieved by choosing [`parseScript`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) function to parse a script and [`parseModule`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) function to parse a module.\r\n\r\n\r\nHere is a quick example:\r\n\r\n```js\r\n\r\ncherow.parseScript('const fooBar = 123;', { ranges: true });\r\n\r\n```\r\n\r\nThis will return when serialized in json:\r\n\r\n```js\r\n{\r\n    \"type\": \"Program\",\r\n    \"sourceType\": \"script\",\r\n    \"body\": [\r\n        {\r\n            \"type\": \"VariableDeclaration\",\r\n            \"declarations\": [\r\n                {\r\n                    \"type\": \"VariableDeclarator\",\r\n                    \"init\": {\r\n                        \"type\": \"Literal\",\r\n                        \"value\": 123,\r\n                        \"start\": 15,\r\n                        \"end\": 18\r\n                    },\r\n                    \"id\": {\r\n                        \"type\": \"Identifier\",\r\n                        \"name\": \"fooBar\",\r\n                        \"start\": 6,\r\n                        \"end\": 12\r\n                    },\r\n                    \"start\": 6,\r\n                    \"end\": 18\r\n                }\r\n            ],\r\n            \"kind\": \"const\",\r\n            \"start\": 0,\r\n            \"end\": 19\r\n        }\r\n    ],\r\n    \"start\": 0,\r\n    \"end\": 19\r\n}\r\n```\r\n\r\n## Options\r\n\r\nThere is a second argument to both methods that allows you to specify various options:\r\n\r\n| Option        | Description |\r\n| ----------- | ------------------------------------------------------------ |\r\n| `delegate`        | Accepts a callback function to be invoked for each syntax node (as the node is constructed) |\r\n| `loc      `       | Attach line/column location information to each node |\r\n| `ranges`          | Append start and end offsets to each node |\r\n| `globalReturn`    | Allow return in the global scope |\r\n| `skipShebang`     | Allow to skip shebang - '#' |\r\n| `impliedStrict`   | Enable implied strict mode |\r\n| `next`            | Enable stage 3 support (*ESNext*)  |\r\n| `tolerant`        | Create a top-level error array containing all \"skipped\" errors |\r\n| `source`          | Set to true to record the source file in every node's `loc` object when the `loc option` is set.  |\r\n| `raw`             | Attach raw property to each literal node    |\r\n| `rawIdentifier`   | Attach raw property to each identifier node    |\r\n\r\n# Modules\r\n\r\nIn Cherow this replace the traditional plugin system, and let you import the parser instance and\r\ndevelop your own functions with it, and / or re-use existing one.\r\n\r\nExample:\r\n\r\n```js\r\nimport { parser, scanSignedInteger, parseScript, parserModule } from 'cherow';\r\n\r\nfunction doWhatYouWant(parser, context) {\r\n    // do some magic with numbers\r\n    value = scanSignedInteger(parser, context); / '+', '-'\r\n\r\n    // ...\r\n}\r\n\r\n```\r\n\r\n## Performance \r\n\r\n\r\n#### Benchmark #1\r\n\r\n![Alt text](bench.png?raw=true \"Title\")\r\n\r\n#### Benchmark #2\r\n\r\n**Note!** This Jazzle parser couldn't parse the TypeScript library, so the results is not 100%.\r\n\r\n![Alt text](bench1.png?raw=true \"Title\")\r\n","readmeFilename":"README.md","_id":"cherow@4.11.2018950","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-5nhHCbQE1BXHkZS727azClopMaW9TZ4gqiOufF7wLD3ririU5F/59k3ZRLvg4NZw3U6Tf1uFS9qxZrdBiiywhw==","shasum":"4c6fcef7b961a2121c28067da5012037ca90e6f8","tarball":"https://registry.npmjs.org/cherow/-/cherow-4.11.2018950.tgz","fileCount":57,"unpackedSize":1083595,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD23OgehWDoj+Smjc6Ef1MxMcUMvN/KvE3/jtUs3EhaWgIgITjf2mIW25ZjHybtjYKenR9xrNg7BkPtXiriWCyOOOM="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_4.11.2018950_1523368541833_0.7565550849296783"},"_hasShrinkwrap":false},"4.12.2018900":{"name":"cherow","version":"4.12.2018900","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"lib/cherow.js","types":"lib/cherow.d.ts","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant","lightweight"],"files":["dist","lib","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","build:lib":"tsc --skipLibCheck -t es2015 --m commonjs && rimraf lib && shx cp -R build/src lib","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf lib dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","bench":"node scripts/micro-bench","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/mocha":"^2.2.48","@types/node":"^9.4.6","coveralls":"^3.0.0","cross-env":"^5.1.3","clean-assert":"^2.0.0","mocha":"^5.0.5","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.57.1","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","shx":"^0.2.2","ts-node":"^5.0.1","tslint":"5.9.1","typescript":"^2.8.1","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"readme":"# Cherow\r\n\r\n[![NPM version](https://img.shields.io/npm/v/cherow.svg)](https://www.npmjs.com/package/cherow)\r\n[![Gitter chat](https://badges.gitter.im/gitterHQ/gitter.png)](https://gitter.im/cherow/cherow)\r\n[![Build Status](https://travis-ci.org/cherow/cherow.svg?branch=bleeding)](https://travis-ci.org/cherow/cherow)\r\n[![Build status](https://ci.appveyor.com/api/projects/status/pkydnkv0deckns5l/branch/bleeding?svg=true)](https://ci.appveyor.com/project/Kflash/cherow/branch/bleeding)\r\n[![CircleCI](https://circleci.com/gh/cherow/cherow.svg?style=svg)](https://circleci.com/gh/cherow/cherow)\r\n[![Coverage Status](https://coveralls.io/repos/github/cherow/cherow/badge.svg?branch=master)](https://coveralls.io/github/cherow/cherow?branch=master)\r\n\r\n**Active development branch**\r\n\r\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\r\n\r\n## Features\r\n\r\n* Conforms to the standard ECMAScript® 2018 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification \r\n* Supports Stage 3 proposals via option\r\n* Optionally track syntactic node locations\r\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\r\n* Very well tested (~43 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\r\n* Lightweight - 62 KB minified\r\n\r\n## ESNext features\r\n\r\n`Stage 3` features support. These need to be enabled with the `next` option. \r\n\r\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\r\n* [Class field declarations for JavaScript](https://github.com/tc39/proposal-class-fields)\r\n* [Numeric Separators](https://github.com/tc39/proposal-numeric-separator)\r\n* [Private methods and getter/setters for JavaScript classes](https://github.com/tc39/proposal-private-methods)\r\n* [Optional catch binding](https://github.com/tc39/proposal-optional-catch-binding)\r\n* [JSON Superset](https://github.com/tc39/proposal-json-superset)\r\n* [BigInt](https://github.com/tc39/proposal-bigint)\r\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\r\n\r\n\r\n## Builds\r\n\r\nCherow contains 3 different builds:\r\n\r\n| Name        | Description |\r\n| ----------- | ------------------------------------------------------------ |\r\n| `Stable`    | Stable release |\r\n| `Next`      | Has the `next` option enabled by default, and support all latest ECMAScript proposals. |\r\n| `Bleeding`  | The active development branch. You can and will expect bugs with this branch because it's not stable |\r\n\r\n## API\r\n\r\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules) and this is achieved by choosing [`parseScript`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) function to parse a script and [`parseModule`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) function to parse a module.\r\n\r\n\r\nHere is a quick example:\r\n\r\n```js\r\n\r\ncherow.parseScript('const fooBar = 123;', { ranges: true });\r\n\r\n```\r\n\r\nThis will return when serialized in json:\r\n\r\n```js\r\n{\r\n    \"type\": \"Program\",\r\n    \"sourceType\": \"script\",\r\n    \"body\": [\r\n        {\r\n            \"type\": \"VariableDeclaration\",\r\n            \"declarations\": [\r\n                {\r\n                    \"type\": \"VariableDeclarator\",\r\n                    \"init\": {\r\n                        \"type\": \"Literal\",\r\n                        \"value\": 123,\r\n                        \"start\": 15,\r\n                        \"end\": 18\r\n                    },\r\n                    \"id\": {\r\n                        \"type\": \"Identifier\",\r\n                        \"name\": \"fooBar\",\r\n                        \"start\": 6,\r\n                        \"end\": 12\r\n                    },\r\n                    \"start\": 6,\r\n                    \"end\": 18\r\n                }\r\n            ],\r\n            \"kind\": \"const\",\r\n            \"start\": 0,\r\n            \"end\": 19\r\n        }\r\n    ],\r\n    \"start\": 0,\r\n    \"end\": 19\r\n}\r\n```\r\n\r\n## Options\r\n\r\nThere is a second argument to both methods that allows you to specify various options:\r\n\r\n| Option        | Description |\r\n| ----------- | ------------------------------------------------------------ |\r\n| `delegate`        | Accepts a callback function to be invoked for each syntax node (as the node is constructed) |\r\n| `loc      `       | Attach line/column location information to each node |\r\n| `ranges`          | Append start and end offsets to each node |\r\n| `globalReturn`    | Allow return in the global scope |\r\n| `skipShebang`     | Allow to skip shebang - '#' |\r\n| `impliedStrict`   | Enable implied strict mode |\r\n| `next`            | Enable stage 3 support (*ESNext*)  |\r\n| `tolerant`        | Create a top-level error array containing all \"skipped\" errors |\r\n| `source`          | Set to true to record the source file in every node's `loc` object when the `loc option` is set.  |\r\n| `raw`             | Attach raw property to each literal node    |\r\n| `rawIdentifier`   | Attach raw property to each identifier node    |\r\n| `node`            | Allow to bypass scoping when run in a NodejS environment |\r\n\r\n# Modules\r\n\r\nIn Cherow this replace the traditional plugin system, and let you import the parser instance and\r\ndevelop your own functions with it, and / or re-use existing one.\r\n\r\nExample:\r\n\r\n```js\r\nimport { parser, scanSignedInteger, parseScript, parserModule } from 'cherow';\r\n\r\nfunction doWhatYouWant(parser, context) {\r\n    // do some magic with numbers\r\n    value = scanSignedInteger(parser, context); / '+', '-'\r\n\r\n    // ...\r\n}\r\n\r\n```\r\n\r\n## Performance \r\n\r\n\r\n#### Benchmark #1\r\n\r\n![Alt text](bench.png?raw=true \"Title\")\r\n\r\n#### Benchmark #2\r\n\r\n**Note!** This Jazzle parser couldn't parse the TypeScript library, so the results is not 100%.\r\n\r\n![Alt text](bench1.png?raw=true \"Title\")\r\n","readmeFilename":"README.md","gitHead":"31125f0f0f751e647d7e02be0311a7abbdfb3d38","_id":"cherow@4.12.2018900","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-GazJGiB/i7Rjf2tJqEHE6m1Wu09y3mnqW73i3Wn2KhtkvTDoRJ/oQ3thXw5XhRZjFGoSZlUoJ7iWnWUl9Ev4Ig==","shasum":"417a1f3c292e697c963915532bf7f9e0d704330a","tarball":"https://registry.npmjs.org/cherow/-/cherow-4.12.2018900.tgz","fileCount":9,"unpackedSize":577414,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGwUdX4VsrrsbYucTu5IPNorJ1Y1x4Z2NRN6fA2guL97AiEA1kuUSRnPEeGIgUOZ87kNJUCdqtTGdbnHk4J5QQP8dWE="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_4.12.2018900_1523452217662_0.8186279796106881"},"_hasShrinkwrap":false},"4.12.20181031":{"name":"cherow","version":"4.12.20181031","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"lib/cherow.js","types":"lib/cherow.d.ts","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant","lightweight"],"files":["dist","lib","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","build:lib":"tsc --skipLibCheck -t es2015 --m commonjs && rimraf lib && shx cp -R build/src lib","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf lib dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","bench":"node scripts/micro-bench","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/mocha":"^2.2.48","@types/node":"^9.4.6","coveralls":"^3.0.0","cross-env":"^5.1.3","clean-assert":"^2.0.0","mocha":"^5.0.5","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.57.1","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","shx":"^0.2.2","ts-node":"^5.0.1","tslint":"5.9.1","typescript":"^2.8.1","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"readme":"# Cherow\r\n\r\n[![NPM version](https://img.shields.io/npm/v/cherow.svg)](https://www.npmjs.com/package/cherow)\r\n[![Gitter chat](https://badges.gitter.im/gitterHQ/gitter.png)](https://gitter.im/cherow/cherow)\r\n[![Build Status](https://travis-ci.org/cherow/cherow.svg?branch=bleeding)](https://travis-ci.org/cherow/cherow)\r\n[![Build status](https://ci.appveyor.com/api/projects/status/pkydnkv0deckns5l/branch/bleeding?svg=true)](https://ci.appveyor.com/project/Kflash/cherow/branch/bleeding)\r\n[![CircleCI](https://circleci.com/gh/cherow/cherow.svg?style=svg)](https://circleci.com/gh/cherow/cherow)\r\n[![Coverage Status](https://coveralls.io/repos/github/cherow/cherow/badge.svg?branch=master)](https://coveralls.io/github/cherow/cherow?branch=master)\r\n\r\n**Active development branch**\r\n\r\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\r\n\r\n## Features\r\n\r\n* Conforms to the standard ECMAScript® 2018 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification \r\n* Supports Stage 3 proposals via option\r\n* Optionally track syntactic node locations\r\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\r\n* Very well tested (~43 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\r\n* Lightweight - 62 KB minified\r\n\r\n## ESNext features\r\n\r\n`Stage 3` features support. These need to be enabled with the `next` option. \r\n\r\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\r\n* [Class field declarations for JavaScript](https://github.com/tc39/proposal-class-fields)\r\n* [Numeric Separators](https://github.com/tc39/proposal-numeric-separator)\r\n* [Private methods and getter/setters for JavaScript classes](https://github.com/tc39/proposal-private-methods)\r\n* [Optional catch binding](https://github.com/tc39/proposal-optional-catch-binding)\r\n* [JSON Superset](https://github.com/tc39/proposal-json-superset)\r\n* [BigInt](https://github.com/tc39/proposal-bigint)\r\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\r\n\r\n\r\n## Builds\r\n\r\nCherow contains 3 different builds:\r\n\r\n| Name        | Description |\r\n| ----------- | ------------------------------------------------------------ |\r\n| `Stable`    | Stable release |\r\n| `Next`      | Has the `next` option enabled by default, and support all latest ECMAScript proposals. |\r\n| `Bleeding`  | The active development branch. You can and will expect bugs with this branch because it's not stable |\r\n\r\n## API\r\n\r\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules) and this is achieved by choosing [`parseScript`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) function to parse a script and [`parseModule`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) function to parse a module.\r\n\r\n\r\nHere is a quick example:\r\n\r\n```js\r\n\r\ncherow.parseScript('const fooBar = 123;', { ranges: true });\r\n\r\n```\r\n\r\nThis will return when serialized in json:\r\n\r\n```js\r\n{\r\n    \"type\": \"Program\",\r\n    \"sourceType\": \"script\",\r\n    \"body\": [\r\n        {\r\n            \"type\": \"VariableDeclaration\",\r\n            \"declarations\": [\r\n                {\r\n                    \"type\": \"VariableDeclarator\",\r\n                    \"init\": {\r\n                        \"type\": \"Literal\",\r\n                        \"value\": 123,\r\n                        \"start\": 15,\r\n                        \"end\": 18\r\n                    },\r\n                    \"id\": {\r\n                        \"type\": \"Identifier\",\r\n                        \"name\": \"fooBar\",\r\n                        \"start\": 6,\r\n                        \"end\": 12\r\n                    },\r\n                    \"start\": 6,\r\n                    \"end\": 18\r\n                }\r\n            ],\r\n            \"kind\": \"const\",\r\n            \"start\": 0,\r\n            \"end\": 19\r\n        }\r\n    ],\r\n    \"start\": 0,\r\n    \"end\": 19\r\n}\r\n```\r\n\r\n## Options\r\n\r\nThere is a second argument to both methods that allows you to specify various options:\r\n\r\n| Option        | Description |\r\n| ----------- | ------------------------------------------------------------ |\r\n| `delegate`        | Accepts a callback function to be invoked for each syntax node (as the node is constructed) |\r\n| `loc      `       | Attach line/column location information to each node |\r\n| `ranges`          | Append start and end offsets to each node |\r\n| `globalReturn`    | Allow return in the global scope |\r\n| `skipShebang`     | Allow to skip shebang - '#' |\r\n| `impliedStrict`   | Enable implied strict mode |\r\n| `next`            | Enable stage 3 support (*ESNext*)  |\r\n| `tolerant`        | Create a top-level error array containing all \"skipped\" errors |\r\n| `source`          | Set to true to record the source file in every node's `loc` object when the `loc option` is set.  |\r\n| `raw`             | Attach raw property to each literal node    |\r\n| `rawIdentifier`   | Attach raw property to each identifier node    |\r\n| `node`            | Allow to bypass scoping when run in a NodejS environment |\r\n\r\n# Modules\r\n\r\nIn Cherow this replace the traditional plugin system, and let you import the parser instance and\r\ndevelop your own functions with it, and / or re-use existing one.\r\n\r\nExample:\r\n\r\n```js\r\nimport { parser, scanSignedInteger, parseScript, parserModule } from 'cherow';\r\n\r\nfunction doWhatYouWant(parser, context) {\r\n    // do some magic with numbers\r\n    value = scanSignedInteger(parser, context); / '+', '-'\r\n\r\n    // ...\r\n}\r\n\r\n```\r\n\r\n## Performance \r\n\r\n\r\n#### Benchmark #1\r\n\r\n![Alt text](bench.png?raw=true \"Title\")\r\n\r\n#### Benchmark #2\r\n\r\n**Note!** This Jazzle parser couldn't parse the TypeScript library, so the results is not 100%.\r\n\r\n![Alt text](bench1.png?raw=true \"Title\")\r\n","readmeFilename":"README.md","gitHead":"148f3516657a5178bcd3557ca7ac728c6cc206ac","_id":"cherow@4.12.20181031","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-ol/16H+GYaerCTUEDt3P3jfz/IJz2Q8Kqx5v7K+4YFNPZVQ6HkzvT6qKofSfbyZrLOIehyQhubvqr542J7uXzQ==","shasum":"cd4164ab863a1267ce44ec3c0915d1622ddc5225","tarball":"https://registry.npmjs.org/cherow/-/cherow-4.12.20181031.tgz","fileCount":45,"unpackedSize":1146074,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD+/5/8arSndZP3sp9jyeGyu0/t1mp/eiLSblUCaD0RiAIhAMJn+1O1L3e4VgbdsK40sVUoJ+6X9F5AzrfBse9x4Nx0"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_4.12.20181031_1523457429709_0.45590272387534414"},"_hasShrinkwrap":false},"4.12.20181101":{"name":"cherow","version":"4.12.20181101","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"lib/cherow.js","types":"lib/cherow.d.ts","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant","lightweight"],"files":["dist","lib","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","build:lib":"tsc --skipLibCheck -t es2015 --m commonjs && rimraf lib && shx cp -R build/src lib","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf lib dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","bench":"node scripts/micro-bench","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/mocha":"^2.2.48","@types/node":"^9.4.6","coveralls":"^3.0.0","cross-env":"^5.1.3","clean-assert":"^2.0.0","mocha":"^5.0.5","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.57.1","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","shx":"^0.2.2","ts-node":"^5.0.1","tslint":"5.9.1","typescript":"^2.8.1","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"readme":"# Cherow\r\n\r\n[![NPM version](https://img.shields.io/npm/v/cherow.svg)](https://www.npmjs.com/package/cherow)\r\n[![Gitter chat](https://badges.gitter.im/gitterHQ/gitter.png)](https://gitter.im/cherow/cherow)\r\n[![Build Status](https://travis-ci.org/cherow/cherow.svg?branch=bleeding)](https://travis-ci.org/cherow/cherow)\r\n[![Build status](https://ci.appveyor.com/api/projects/status/pkydnkv0deckns5l/branch/bleeding?svg=true)](https://ci.appveyor.com/project/Kflash/cherow/branch/bleeding)\r\n[![CircleCI](https://circleci.com/gh/cherow/cherow.svg?style=svg)](https://circleci.com/gh/cherow/cherow)\r\n[![Coverage Status](https://coveralls.io/repos/github/cherow/cherow/badge.svg?branch=master)](https://coveralls.io/github/cherow/cherow?branch=master)\r\n\r\n**Active development branch**\r\n\r\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\r\n\r\n## Features\r\n\r\n* Conforms to the standard ECMAScript® 2018 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification \r\n* Supports Stage 3 proposals via option\r\n* Optionally track syntactic node locations\r\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\r\n* Very well tested (~43 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\r\n* Lightweight - 62 KB minified\r\n\r\n## ESNext features\r\n\r\n`Stage 3` features support. These need to be enabled with the `next` option. \r\n\r\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\r\n* [Class field declarations for JavaScript](https://github.com/tc39/proposal-class-fields)\r\n* [Numeric Separators](https://github.com/tc39/proposal-numeric-separator)\r\n* [Private methods and getter/setters for JavaScript classes](https://github.com/tc39/proposal-private-methods)\r\n* [Optional catch binding](https://github.com/tc39/proposal-optional-catch-binding)\r\n* [JSON Superset](https://github.com/tc39/proposal-json-superset)\r\n* [BigInt](https://github.com/tc39/proposal-bigint)\r\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\r\n\r\n\r\n## Builds\r\n\r\nCherow contains 3 different builds:\r\n\r\n| Name        | Description |\r\n| ----------- | ------------------------------------------------------------ |\r\n| `Stable`    | Stable release |\r\n| `Next`      | Has the `next` option enabled by default, and support all latest ECMAScript proposals. |\r\n| `Bleeding`  | The active development branch. You can and will expect bugs with this branch because it's not stable |\r\n\r\n## API\r\n\r\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules) and this is achieved by choosing [`parseScript`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) function to parse a script and [`parseModule`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) function to parse a module.\r\n\r\n\r\nHere is a quick example:\r\n\r\n```js\r\n\r\ncherow.parseScript('const fooBar = 123;', { ranges: true });\r\n\r\n```\r\n\r\nThis will return when serialized in json:\r\n\r\n```js\r\n{\r\n    \"type\": \"Program\",\r\n    \"sourceType\": \"script\",\r\n    \"body\": [\r\n        {\r\n            \"type\": \"VariableDeclaration\",\r\n            \"declarations\": [\r\n                {\r\n                    \"type\": \"VariableDeclarator\",\r\n                    \"init\": {\r\n                        \"type\": \"Literal\",\r\n                        \"value\": 123,\r\n                        \"start\": 15,\r\n                        \"end\": 18\r\n                    },\r\n                    \"id\": {\r\n                        \"type\": \"Identifier\",\r\n                        \"name\": \"fooBar\",\r\n                        \"start\": 6,\r\n                        \"end\": 12\r\n                    },\r\n                    \"start\": 6,\r\n                    \"end\": 18\r\n                }\r\n            ],\r\n            \"kind\": \"const\",\r\n            \"start\": 0,\r\n            \"end\": 19\r\n        }\r\n    ],\r\n    \"start\": 0,\r\n    \"end\": 19\r\n}\r\n```\r\n\r\n## Options\r\n\r\nThere is a second argument to both methods that allows you to specify various options:\r\n\r\n| Option        | Description |\r\n| ----------- | ------------------------------------------------------------ |\r\n| `delegate`        | Accepts a callback function to be invoked for each syntax node (as the node is constructed) |\r\n| `loc      `       | Attach line/column location information to each node |\r\n| `ranges`          | Append start and end offsets to each node |\r\n| `globalReturn`    | Allow return in the global scope |\r\n| `skipShebang`     | Allow to skip shebang - '#' |\r\n| `impliedStrict`   | Enable implied strict mode |\r\n| `next`            | Enable stage 3 support (*ESNext*)  |\r\n| `tolerant`        | Create a top-level error array containing all \"skipped\" errors |\r\n| `source`          | Set to true to record the source file in every node's `loc` object when the `loc option` is set.  |\r\n| `raw`             | Attach raw property to each literal node    |\r\n| `rawIdentifier`   | Attach raw property to each identifier node    |\r\n| `node`            | Allow to bypass scoping when run in a NodejS environment |\r\n\r\n# Modules\r\n\r\nIn Cherow this replace the traditional plugin system, and let you import the parser instance and\r\ndevelop your own functions with it, and / or re-use existing one.\r\n\r\nExample:\r\n\r\n```js\r\nimport { parser, scanSignedInteger, parseScript, parserModule } from 'cherow';\r\n\r\nfunction doWhatYouWant(parser, context) {\r\n    // do some magic with numbers\r\n    value = scanSignedInteger(parser, context); / '+', '-'\r\n\r\n    // ...\r\n}\r\n\r\n```\r\n\r\n## Performance \r\n\r\n\r\n#### Benchmark #1\r\n\r\n![Alt text](bench.png?raw=true \"Title\")\r\n\r\n#### Benchmark #2\r\n\r\n**Note!** This Jazzle parser couldn't parse the TypeScript library, so the results is not 100%.\r\n\r\n![Alt text](bench1.png?raw=true \"Title\")\r\n","readmeFilename":"README.md","gitHead":"148f3516657a5178bcd3557ca7ac728c6cc206ac","_id":"cherow@4.12.20181101","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-s8aQ0FBqZF20VWifJ/oyyOz2CADMBivD72KfUDHZEf2Vw7RR1GyYEtJPtYMrGiiPNFsSBoiSrKyckrX72vTVeQ==","shasum":"1ca2da8766a323df309f7391c2d68a5f6e7c172b","tarball":"https://registry.npmjs.org/cherow/-/cherow-4.12.20181101.tgz","fileCount":45,"unpackedSize":1145794,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFpXqOX1dW2B1bCZJWUMWG/wtEyxmsinzzE6fHsiK6UQAiA6ZQ52dZIS4wLONIQ2+P6rexInWP7LTwLnNwrJCGOIFA=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_4.12.20181101_1523459256263_0.7332539226096093"},"_hasShrinkwrap":false},"1.4.0":{"name":"cherow","version":"1.4.0","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"lib/cherow.js","types":"lib/cherow.d.ts","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant","lightweight"],"files":["dist","lib","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","build:lib":"tsc --skipLibCheck -t es2015 --m commonjs && rimraf lib && shx cp -R build/src lib","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf lib dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","bench":"node scripts/micro-bench","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/mocha":"^2.2.48","@types/node":"^9.4.6","clean-assert":"^2.0.0","coveralls":"^3.0.0","cross-env":"^5.1.3","mocha":"^5.0.5","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.57.1","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","shx":"^0.2.2","ts-node":"^5.0.1","tslint":"5.9.1","typescript":"^2.8.1","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"0c1f8ad27e030dd8287e0e5a8903446e1ef4fabd","_id":"cherow@1.4.0","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-rimworQZaPr0/mS6iGg3iYwyMwDLLI0n+MFi7LDcQRV/TZ1N68cE0eLM+Nkhyisb1aWbX2P8yvzDKKByLwP/MQ==","shasum":"55eedd4db28eb5ca596ac946824e6bc9d48eb1fc","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.4.0.tgz","fileCount":49,"unpackedSize":937332,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa1YROCRA9TVsSAnZWagAAzFIP/1mmnIzKgy5j4C+xuVHT\nN9HwRUUpjU2RmGc1cVKYIe1m1+3KQNMZ4WlHxw+0X4v5wA7COiwj3dZwxGVp\nwOAFDC7fEWd7ZReYORYzRWXxW7OC9A9yncR4uDogauv+eChcBKTmlw7Th9zP\nM+Sm3dBMPlhFioEoDzScosZrMTLKiivDsDVTKvqhcS8t5naAGtoD744cbMvs\nU6Ecmze776nbZ5Kj089e3omZzd2pr5qUUhNYnou5hIS0G1KL5H7yspw2gr16\n2oFCyfnpx/n8kXG8szmwKZVzfgQ55EY9ja6+lGZQsxBripdrFwm2j/WVLyp0\nSoN+0kMIKdPCq1cBSEXQxfrAeSMF+XT75USHdjCJf2lJcfpum+VEy3+eBoIA\nXawdxi+jXscmLTJ1ruV98oqj3SE9MDdsCFFbhPCpFrtvHWtr9UswvmcHYrIK\n5fI8qCYOC90cNaJSvWQyE/pA2XwNy4ZyEFdUtWu+q5LZ3s0MWWEGEhzQwYKv\ntjkEg8j0yJFa9toVkALpYr6mpv5gR03pWpm8qjmjJsi2Yg7xMeTwZ68E1ukr\nNb+4oBf9MbD/kqFp6UK4XlTUGiXErunuH3X+7MxnK8lWzmy/saAbGPf8R6Qk\nF5o7mJk0LKI3VTC5+TyTHtEvzza98Q+y64n1M4jIH1eTC0x9oV1Cgeje4KNF\nT3ne\r\n=0/8h\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC9UNYG3zzOW9XZJO8f6rWVJ6gK62suBybV37KJsvBbuAIhAKwh3XXtvX6dusmnzelR/bW9YcigfmwNOPNTI9Txb29k"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.4.0_1523942476047_0.9886834928701864"},"_hasShrinkwrap":false},"1.4.1":{"name":"cherow","version":"1.4.1","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"lib/cherow.js","types":"lib/cherow.d.ts","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant","lightweight"],"files":["dist","lib","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","build:lib":"tsc --skipLibCheck -t es2015 --m commonjs && rimraf lib && shx cp -R build/src lib","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf lib dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","bench":"node scripts/micro-bench","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/mocha":"^2.2.48","@types/node":"^9.4.6","clean-assert":"^2.0.0","coveralls":"^3.0.0","cross-env":"^5.1.3","mocha":"^5.0.5","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.57.1","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","shx":"^0.2.2","ts-node":"^5.0.1","tslint":"5.9.1","typescript":"^2.8.1","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"d2bb3f5eb821b65da72507eb9267dfc72d7276ae","_id":"cherow@1.4.1","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-lItswIEGc7u83r9FwZz+GQBz9vilVVzkh/mABtqL8TZhJZnvBz6tWCo1pWMDkuNs494FizdulnJxl2RDSjkiHw==","shasum":"0495b853f30ca107932bb779d4d2db8fda8be3fe","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.4.1.tgz","fileCount":49,"unpackedSize":932572,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa1aY9CRA9TVsSAnZWagAAMeEP/2LPgpBpsvsp9cmc1HfX\n1soKhFBultj1JPtOALIdeEnJJykwugpcMDgKnKmtOxH6MWtjdMUYZXMRf6Wa\nLRoMUbg7mLaO1I2pPLu7ZWDofe5QPKuFaLFIV7F/NUpYGotWhB0fgS1GGCAe\nMooMSLYzpbZz5n8/YrTatVdGHyALclBZ6y8Xss5toBY8OkGCgAgXQ3I3EImQ\n50UbtHuNWjoWm51ZdowleSQwS8Jdnn882hFccOiIRiRQfhv/m4P2MaG8FH73\nxNk4b75ioG5yIWRecYdKOnvCbzkKvUN4DCLN2kEuWQPsjso+2FaPc+WYV9Le\njX0UsXHkp7oW1R9XSSVp9EVGRuS9e+D5lV2gtc207KmJR6FyvCkOJoBiLxnj\nWKiI2WHEq3Di5seT2CJN5C/m1KqOCozvMPhhjNElxIXiHL8RWrKTSBhm8Rlf\nZUD7LVjiQReUTBni/9uZitZx0rkgcnS502gu+gSXg8CXeFXqOJyHKiFKH8hC\nU2AhOi16GHonAidpeazrT3O7VD3AJ0ZfhTMANmj94IOraoQViFivTVNvJKXh\nlPbhn97krPH5TF2Ni4k2ywhNCFDm+CDcRRmyHyJN0/pBeLvhGR792ISdHq/O\nvVziT5zirmWShA91kwQFkfUlb4TKeWF2uAQ8u0LTc08GFwH7woujMnHrqxt9\nxdzf\r\n=F9n/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDvwyXrc98sIr59CI1ba14pwo/gu3DNPi62VZJddQIj9gIhAPUQZZe5gfGgZjgHRTmbBYSE7BMmM/OJlhF6d6pgd547"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.4.1_1523951164072_0.9000096449548116"},"_hasShrinkwrap":false},"1.4.2":{"name":"cherow","version":"1.4.2","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"lib/cherow.js","types":"lib/cherow.d.ts","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant","lightweight"],"files":["dist","lib","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","build:lib":"tsc --skipLibCheck -t es2015 --m commonjs && rimraf lib && shx cp -R build/src lib","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf lib dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","bench":"node scripts/micro-bench","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/mocha":"^2.2.48","@types/node":"^9.4.6","clean-assert":"^2.0.0","coveralls":"^3.0.0","cross-env":"^5.1.3","mocha":"^5.0.5","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.57.1","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","shx":"^0.2.2","ts-node":"^5.0.1","tslint":"5.9.1","typescript":"^2.8.1","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"fd54f2c08bbbda8cc13faf5ee6053f0c409f78c2","_id":"cherow@1.4.2","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-lv091IwvhMaKsfGH97Mwf/sixpiOeIeWhiX4EZN/HmQgxwTJaZQbOz8JLZ/Gy2Gf9Gaa6S2wa3F3C5wVGBmVtQ==","shasum":"ca92287b54fb06ef7ce4b35a85159e4f5f868e99","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.4.2.tgz","fileCount":49,"unpackedSize":932897,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa1cN3CRA9TVsSAnZWagAAJewP/2/5/0TtShmtvYqiXXWE\nHP4UWTlQ5YwJnFaoF54YmtVDYO14pu3dD/kBZDsrpffJnl4xC8d3FxiHcGnc\nS+vnPwZwFdH6Ng2/VAJYnSFimQUEZ40NIWNFenvpGtDS3z/tKDckDKUJrOnE\nFsRwJAY8CQs9eBiyVCaTQtOSO6n5qy1zQDAHNODw8UZ4i8pkHa4+b3rI4W0i\nLTCjQI5fHOtnIE/4A1r/nQ4Afgk9paTyVDaOg+6Z7ZTh38aSohDzTWdnOryt\nbwqiHc8fPzDIsN4SZDwf37b9GiwFsBye+pqrEUS3xcR1pEbdcDxEcMYl5VF9\n2zgspBLBh6Tq7xjqQPjdYNhr7HqdyKkO6yYh3tmiP/Hr3NnAGPrXsmOrD9Qb\nenDfp/o9bHELtMqgk2hIor0MZNlVRIYW15Qg9b4nk9zoKxGtD5lnQRL2SgWH\nJ1GVZ0qgtV9rCKeZPp0up7ZgwUUaQ3fwyz16rek5dsBCjb3Bag/cn+GauETX\nzAxy4Q1two7CwY/I7yZRLh9pDOCvcjZ60QO+u/xz6R7vpSPPbkAHsvKjPpmj\nS21Sqmo2EVytem9+GmGeULZj3HzyNVjtc7MEY0EU+fCuGSqN9IbDIm7nbfJv\nDET5oyUW63UMwuK+nbrO2UbInjeM8pi377QYyjPvIq7VNwj37xAANo1/UhCz\niQKU\r\n=ylMW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDhkO/V2fAESj77Gy8N2CpVlq7yYzeBKsA69+8CjLXaRgIgS8BYAZQXzxtLKejPFoqX1kmeRWmUA1EKvaJl089hvas="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.4.2_1523958646813_0.8233745622613435"},"_hasShrinkwrap":false},"1.4.3":{"name":"cherow","version":"1.4.3","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"lib/cherow.js","types":"lib/cherow.d.ts","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant","lightweight"],"files":["dist","lib","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","build:lib":"tsc --skipLibCheck -t es2015 --m commonjs && rimraf lib && shx cp -R build/src lib","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf lib dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","bench":"node scripts/micro-bench","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/mocha":"^2.2.48","@types/node":"^9.4.6","clean-assert":"^2.0.0","coveralls":"^3.0.0","cross-env":"^5.1.3","mocha":"^5.0.5","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.57.1","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","shx":"^0.2.2","ts-node":"^5.0.1","tslint":"5.9.1","typescript":"^2.8.1","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"d085500a4e496a7bf5f0681be8d6725790f4bfb4","_id":"cherow@1.4.3","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-2CabDw3eyt4LXNd41YILdfqIeuQws15eh2yLGHG7Vjc6qZ4AlZVLUsTu9jqxFLbs1mSUc+/F+VOcExDQZvSyLg==","shasum":"ad77cf01832a95d795f4623bf60ac9a91c289856","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.4.3.tgz","fileCount":63,"unpackedSize":1166311,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa1/C2CRA9TVsSAnZWagAAZBwP/RVFrCGHfovm4V6e/yFU\nd2CxhG++R1QlOe2SqTE7veuQ0yONuzziQXaX+xJvEUq+ZDRUrlqRMk9Sbd2r\nP9kK92xA3HLJ6QAYaSMJasyaY7NBIsdYEvrsuhXjRRPMnypIMygkr65ygjVk\nNcsv3fDUii5FKXf74QhaEZRNMVopNX2JaOAn7OakDAWp+gqdRleMF7vbVlcT\nRFOGmA1f8tQZxItegWMOZDAzbapFERFrl150CdbUWUXdZRCFavPPCAs1upgd\nuc8MZCk/6kecYpwDnM46QGI2kaBqpaLTW9VE4uxvE2PTkNYRavl3fyUZTJvz\ns2jq2uJKwxNoQHYTamW6M33h2j4HzMjMqEC5/YcnHUp5oBdDyOpaJ3esaMQj\nIvQtyxZXX9l6z4eCHZtUyDyrfAjoQfuuOxHqZJTQLkdc7PUAq+0DRqsfAAq5\nYjEwZIz6Gw7TTATIPoZaaZcJV9MrEeIFh9g5JqD2IZaJETE7ax84U34MEkRy\nVOhRuZW76emcePjhjz8ttWxhVCCUZo2cZOym8QLUir/C0IIyuENvhe5oqh9k\nTMwkoNUreQvtSOTP4v927MfBKvkSHic6Kobva8OC/U6hYMPsfhJli1ZNr/90\n+qwbvAqKCcLetHmsNFe+EYn+xNZmC6A9lHtxKl24fkmvGZ4UxBoBIGiJoiia\nV6qV\r\n=GhIt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCwIlesPpAhjmOnuMO24IFTPecK7vo3L0rzuevztzfRngIgeIdGzReo2E+djxX8fDodCJUFt9oVgYLBZ6CuUM6XFAw="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.4.3_1524101300742_0.5570310155198113"},"_hasShrinkwrap":false},"1.4.4":{"name":"cherow","version":"1.4.4","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"lib/cherow.js","types":"lib/cherow.d.ts","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant","lightweight"],"files":["dist","lib","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","build:lib":"tsc --skipLibCheck -t es2015 --m commonjs && rimraf lib && shx cp -R build/src lib","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf lib dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","bench":"node scripts/micro-bench","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/mocha":"^2.2.48","@types/node":"^9.4.6","clean-assert":"^2.0.0","coveralls":"^3.0.0","cross-env":"^5.1.3","mocha":"^5.0.5","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.57.1","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","shx":"^0.2.2","ts-node":"^5.0.1","tslint":"5.9.1","typescript":"^2.8.1","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"e7ce19d66b66d5f4cdb257649feb611dc505ea8d","_id":"cherow@1.4.4","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-kE3mEb+oQGRhMnxAzC38W6rLSsFzmT6hUt5AlTatDKxIL3AkYB4SjK8L4bRidignOLeABoJdDPZRasApC5wQFg==","shasum":"569ec180e87572d303529257d15a30ef59c9ba63","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.4.4.tgz","fileCount":63,"unpackedSize":1166412,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa2A6DCRA9TVsSAnZWagAAXv4P/jAGtVM3MEqG/5UnDWdV\nn9m6b+E6sCD31hB8V+HMaHX2xEXCvLBgwVuxZeyIJyDZN8ITlo4ahbL7r1qk\n6XP2qsK1mK6JonCJ52j42K5VhBVjHbsUWqpu//0rPbNsMKRVIBznemz0xqau\nLNE/ZV3z0hVHJfBLuaRNzCtLvx9er6Hwh1usxG55NW1EvsZCvV8faLKLKJQD\nQWvHPMib55WrO010yJaGnAR97eafqDWUeO0oouZZqALRc9+3g8b+G6zpF+2r\nBP/W5B7IwOLpFrGxK211naUmvmoum5Sau0TFJckc0vXd87srPxT8L0ed3LyB\nTC9UoJHv5P7mNSsbmOwsV2LdhrIJ3Z4LhT8CLTOQ8MgQPrYDBhTaVI71GJIS\nFNLyxHH51osm2N0nMgT5HcOtOvIhcI/vu/MZO13Tq2g1HX5IUaz6kAtYj0Jk\n5Bp6kv1xG7WxC3UuqLYC+PavIXmPcokFbAR9muRVvodzfAaTYyi4Q358m0op\n14ZScBRkMH5pZALRQSenHbaoy29Y62mHXcTRzdSwULP07y2ACNmDzOL8Dsr+\nEkrqg6+tXoRs1sfJiPrewCV6ed89nNQqCDm+ZzGPc7i4e/Y2PEo4GF2CK3yw\nFjxARLes27cdNQyuHSK9+gJDT5mAAGABysi8eSBHPUKfWjpmOsU+gKAXwEDI\n4kvg\r\n=gP1W\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGkB6IDZy3kUO0+I85BzMc7czzkSDlC7VZIuC5o9DiN8AiEAkQq0LJzZxIgI8vGxYVm8rXhoEONSQgZ+NBJ2uQMAxEM="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.4.4_1524108929532_0.34448853545256886"},"_hasShrinkwrap":false},"1.4.5":{"name":"cherow","version":"1.4.5","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"lib/cherow.js","types":"lib/cherow.d.ts","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant","lightweight"],"files":["dist","lib","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","build:lib":"tsc --skipLibCheck -t es2015 --m commonjs && rimraf lib && shx cp -R build/src lib","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf lib dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","bench":"node scripts/micro-bench","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/mocha":"^2.2.48","@types/node":"^9.4.6","clean-assert":"^2.0.0","coveralls":"^3.0.0","cross-env":"^5.1.3","mocha":"^5.0.5","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.57.1","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","shx":"^0.2.2","ts-node":"^5.0.1","tslint":"5.9.1","typescript":"^2.8.1","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"af9e817d7ae50dc8b803d944d86ecdc570a2a3a4","_id":"cherow@1.4.5","_npmVersion":"5.6.0","_nodeVersion":"9.11.1","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-8FLUsu753aqUlFZwRa+TJrZHgcBhiuwSNP7JXivSYT1VDuQ8zFDZ9HFODeWtDWIxc8seFdCFHHV0aeBY80JXfA==","shasum":"7ab06d2013ca45f5d7e13c12bca915978b0f2823","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.4.5.tgz","fileCount":63,"unpackedSize":1168660,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa2gbQCRA9TVsSAnZWagAAHo0P/3X+tRFPYCIh+kfECek5\nh3rrxC+As4BJ4Qkop4sIqZMszzXVjI2lPim/NdC2PLO5SzgwqElAjix0YqE/\n34Nl7GlaDSg+TL/fHQ6MH94/+7aS0M5634UjnrN/nILFQoEnSQCY5yov08UU\nkWQyvC2gbPdRy/YpQgHnaXLrxcVeQ8kgD6ICDYmMW2Xt9Ns55uby6huv8UEj\nIIZhoeDr6ICJPT704BNlcFjNpthGbd+AVUKTmt/W/OeL8BsJ7WjkyOx0/ffp\nPqQ8dw/wMhkBIM0224yGyomE6837uPhzn39OgdrPHFCBPeEdTniWxRhzQ83K\nHX1IepJZmpMiyQXmWjTMFf5UEojWcQiD60C9SNoigWB6tXTduNuAsO74rhmI\n90hFm0+ITKF5O/nf5AJl0z9hoF/v42fBfBxQ8HmrYozYyDsUSUSkYfL5ewYY\nz2Z2trtSytpK7LpjuMSQtYbt33QIAjwMwG9PJgtGuvPNwHZEof5pWDu/Ssz+\n3z9FpoUjdS6peKrii3Pig/bW7eNbT0o3F3eL/4mFGAwYMQA3xw3VIChL6/XC\ngly7i5POP8LFHvW3XrI7oC789pmjMPBCCjFeicQLwnnyn+QZnDt5aUJV6WGZ\n87la69L6fDcEjRP6qVkL0y2WSK98B3IK1Lk+frJgIguKaIMVxDib4NXVyCOp\nL0pO\r\n=Mwyi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFYc5Urs/4ESUXXA4kmPC0sFM6cRAb+1NFhCIhTKP9lJAiAlXc8ShGjmwJORmw9CfMAuvAqz/P2xMXd40UBxLfYjgA=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.4.5_1524238030176_0.10659147817282832"},"_hasShrinkwrap":false},"1.4.6":{"name":"cherow","version":"1.4.6","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"lib/cherow.js","types":"lib/cherow.d.ts","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant","lightweight"],"files":["dist","lib","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","build:lib":"tsc --skipLibCheck -t es2015 --m commonjs && rimraf lib && shx cp -R build/src lib","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf lib dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","bench":"node scripts/micro-bench","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/mocha":"^2.2.48","@types/node":"^9.4.6","clean-assert":"^2.0.0","coveralls":"^3.0.0","cross-env":"^5.1.3","mocha":"^5.1.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.58.1","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","shx":"^0.2.2","ts-node":"^5.0.1","tslint":"5.9.1","typescript":"^2.8.3","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"16bacdba7c8cdeaddbaa0b84e304aec10980cfcb","_id":"cherow@1.4.6","_npmVersion":"5.6.0","_nodeVersion":"9.11.1","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-zY771yDeLjw1i4N9+z5KbaKOPXG5BdbEm8PakHgakRz9q6Ta+ChPMhDmSkG1cNDx5sGA9l7MG+Hn9eUbx6xFJw==","shasum":"bb2947a04e775961726ea2cc249772172ec091be","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.4.6.tgz","fileCount":63,"unpackedSize":1192434,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa2058CRA9TVsSAnZWagAA9+AQAJqO+scNDtTdfpMmMvyQ\nnDaU4M8oati4iq2VCi+2Tfkj4Gkdvrbl4HvUhhlaSGmEcSo7PfVjaWA5Uc9p\nOZB2uhPoXh+SWcMAgCPjyVpAD3ZhbvpdRIyL3hHFsw+RV23kGwvSk6We6w3B\nc5O13o2y00IE6icfWGvCKzl3zZyDGCKBvq7eHw8kqs+rBaLTd2azltzoiCqb\nK3jFL1XAjUSrDXVhr/uSOnP+1YzsJchoKVFx8JHUedXknVpaprFjtomXJsjn\n6WYQZqnO3HEgZq8SBtW9nOSf3jBBPMHFhcAzqFGwpCSowjZDqyrti9RtRbVK\nI9l8Q/uRPaXHKVVjo367Klt90FMFprY989SkMADI89WZ9dtDaeCxL7PAuXTH\nZlL7IT6XbRTQOAurKuI8RAkzpr1amLbYLxsp6t2H4Euj+gvgHv7YoPOecDco\nkT7wJHqX0AW7IiJwRdU4glLNfO7Jm6VPm9Wt5WfzjLu2IkyIkkmdKgCWo2mE\niVFqtZAoaWMIs6qh4C9OBAado6hFeAicI9LORQsK1B4RCUATBZmaF3C9noFV\nm5YXgbG+4jixQw4/zhPnIbpXsjx7jcitIMw5L+Es87IENiNJS4fmaQX01yfB\nbaENgG9nRvGY1g7UXsEY19l3u84C4zH8vl/HB358BtCSvM6V/3IR/YhSMTV/\n2uzg\r\n=TIXq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC63uTjp+cj3MjmyRTpFTlf9dyaP12BTT3Zb/fjEwseDAIgcCK73xmzji3aS2GHUOqlt0MhvyKX5hpF36KAI2X2n2g="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.4.6_1524321914595_0.6945751216461011"},"_hasShrinkwrap":false},"1.4.7":{"name":"cherow","version":"1.4.7","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"lib/cherow.js","types":"lib/cherow.d.ts","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant","lightweight"],"files":["dist","lib","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","build:lib":"tsc --skipLibCheck -t es2015 --m commonjs && rimraf lib && shx cp -R build/src lib","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf lib dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","bench":"node scripts/micro-bench","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/mocha":"^2.2.48","@types/node":"^9.4.6","clean-assert":"^2.0.0","coveralls":"^3.0.0","cross-env":"^5.1.3","mocha":"^5.1.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.58.1","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","shx":"^0.2.2","ts-node":"^5.0.1","tslint":"5.9.1","typescript":"^2.8.3","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"b28d59149e353ae0d0688b89a77b98491a40c270","_id":"cherow@1.4.7","_npmVersion":"5.6.0","_nodeVersion":"9.11.1","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-xRJLA0SArcJaL5vcgvM9nWpsxwSMxPABBAjBFyc3MDq7gzD7gpriF5PjrrmqXXSPeAwooT9q5zpzgFwCaHl+Nw==","shasum":"a838da8e818e4c662a16b40a9dc9991dcac2bb1e","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.4.7.tgz","fileCount":63,"unpackedSize":1194289,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa3Ex8CRA9TVsSAnZWagAADS8P/12TpDHbbwZ72CzBFtS7\n2+GmiDAI3IEY4s3esEMCBG6m+MECHY9F0lKuZR6XlGNVw5IZNkUwuyWEl+r4\npD9ufkIjkWrpDNi3wcFJBMJhUN3aB+QCbELcUJLp6S5UnX8x0YjPmOJOZxVz\nhHTyUbiHsH0Gi0bIFCJcHEsI5kKoecPAGHMyGQGO5dPnEeGUElIrYbca2zp/\ngdv4judkFMSrmwd+13ShRQZcTloAhbdX5rRqTEtteeH3ZLmI96GRtMOlJYEp\nhsgXC2m6sdvdXyNeJAmbr41g0Uu2iK/fc6HifGrYHwAcGVT2/wH/vliIS7UP\nTrQnc1LZHUE9c0mKgBeXfjJITWhG911Q955TrJdeEh8ClMWFs3TXKFrSkuyv\na2Wwi/JZNFhCMl1Yah3iFbPjSpH1aUIYdnULmoPR71p2INafbmWD9TUCS1SK\neMnCzbqGPj6ibsuiekTBLcK3Q3aNAjiv3IiWscFlrD3vHbT76K08+qiD48py\nZjzyXTPanLwQ7otePCTeqFJwf4t9i+3vDR0MhrsmTdacgK0SgmgQdUjiYtEx\nTEcvEPOqZw+r0rZ5Z+raH9Coq1eSFkGhV/n3rZg7EUmoTwTTDbcSPPjgl557\n9cdCmTwUje4dsgg8zF3yBhpF4oDpBKAKTGor2rEr7LTO4jkM7coWxdarC8MA\nq8o3\r\n=LKCW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD278GdxPgl2q2/mST+xYLv+5ug1Cc6cEPGGKoJ9W/GmAIhALVADqifsiG2bdLweYN05xLukIrV0E/unHLAuq1zoOaJ"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.4.7_1524386937975_0.2655878484030356"},"_hasShrinkwrap":false},"1.4.8":{"name":"cherow","version":"1.4.8","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"lib/cherow.js","types":"lib/cherow.d.ts","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant","lightweight"],"files":["dist","lib","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","build:lib":"tsc --skipLibCheck -t es2015 --m commonjs && rimraf lib && shx cp -R build/src lib","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf lib dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","bench":"node scripts/micro-bench","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/mocha":"^2.2.48","@types/node":"^9.4.6","clean-assert":"^2.0.0","coveralls":"^3.0.0","cross-env":"^5.1.3","mocha":"^5.1.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.58.1","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","shx":"^0.2.2","ts-node":"^5.0.1","tslint":"5.9.1","typescript":"^2.8.3","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"8c95455cd765f8fadda65242e0ffe4121f9c9b51","_id":"cherow@1.4.8","_npmVersion":"5.6.0","_nodeVersion":"9.11.1","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-IIEQLhhE11gNrChEFOvoP/vgcM+cOKJmf4iRGV8OOOXxHGNPG3omsRKOrLSsYaHSV7Pb5pOvOl6UTVeCGobGzg==","shasum":"3c92823cd8c504d02da221df18df6938d5ff7662","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.4.8.tgz","fileCount":63,"unpackedSize":1194235,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa3JAUCRA9TVsSAnZWagAAh2MP+QDd3Un+5ZuRgWRM08JT\n9FENrAThYCLxRcuc/sN8wRYdAVueARiu2KNe6JfGXVy6BTpz2p6pW2XRuMwl\nMj/F+IXKcOCmASrNMNa0s/by3CtE2Ku0WFV/0mP5A6+0v19+2CbXbf9yVmBq\nT5tx5fkGqtkMlqxFhg6Wg1UivnR4CD0MdnLZGmkR48Iz9UMOp8pXmAD1HXwK\nq56fCrENF412qqpuaz/hTpVSQb7vpv2oVVb6qeJ5aD+RpQvRapNipK/prX1X\n5dQtitfLXQlTH2QX0b3D4aiZl6gE15K8aWENImG7+LcJTzFFJqqqFF91dh4z\n4VzpLKnMLoW5DOY7Q0yFM+wasV/3/IBaedXKLYL/xEPL+DbZj3k1oZLkumEN\nXKyrbvQArj0mUkgQB626pzSZx6kRZcNm99uisGh4PlOFPxPwgNTSgeK6NvZC\nzhN9Hbr0rLAXPwD24C68uwpCOSpgQxTQzEJIb/XSUf9/3T+m+ynkafn2GiPL\nym4ZxZJj8B/yU5g8O+ASObUjNoPzL1v8udUL8OwoLug5CNH+qxLHzvXjQiYf\nNhB1qHWnyGVB15SxzF8HmZNwJ0TyrXJhWASQzU20GKpi8Taj2Wpdy6GOOHTF\nhjJcp2vCXbn9o57hgBOWYo2ajYr770fpqtrEQxtO6Ww6pQThwtn6Lr4Ugdcv\nXhZr\r\n=Taus\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDVQHr1nfnxPF4FkQIANN+0fX1CG+RUPTAJeGYdc9js2wIgd9SerbmDGQBnk8l2OMySzdlrDLAOFno1pE+fijFjGiI="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.4.8_1524404241854_0.7486655215132538"},"_hasShrinkwrap":false},"1.4.9":{"name":"cherow","version":"1.4.9","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"lib/cherow.js","types":"lib/cherow.d.ts","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant","lightweight"],"files":["dist","lib","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","build:lib":"tsc --skipLibCheck -t es2015 --m commonjs && rimraf lib && shx cp -R build/src lib","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf lib dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","bench":"node scripts/micro-bench","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/mocha":"^2.2.48","@types/node":"^9.4.6","clean-assert":"^2.0.0","coveralls":"^3.0.0","cross-env":"^5.1.3","mocha":"^5.1.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.58.1","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","shx":"^0.2.2","ts-node":"^5.0.1","tslint":"5.9.1","typescript":"^2.8.3","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"8c6ac2c1f173d33d5ce76f48feddcbeb2c2d9f58","_id":"cherow@1.4.9","_npmVersion":"5.6.0","_nodeVersion":"9.11.1","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-HQFco4I5kE2HqoD733MxY1ru1SBwCaA7am6IFjOTTlfYJVr7mdCvvrGDTYs6AvmDITtYLz+f0tEHDE6zamg3cQ==","shasum":"a0648ae815ed13f6dd230b40d98caf303c7fd46a","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.4.9.tgz","fileCount":63,"unpackedSize":1193750,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa3KqZCRA9TVsSAnZWagAAreMP/3CXq5WS6D75I/meqGsn\n9UNck642WHcqWEJamVXHqQ7hB5DEXHAD/65KkN1G9jejbapThHZ5Q7DINa1z\nzlYq+1pxYcqkWL//ujROPXDAiNsh5YQHRhNtDg0MIXDObFvgT174SHo/6D4i\nwj3c9icGECH/i0cX860DPQDAsKgIeYOQofnRtvbiraeesPynmIVgtviC/0tb\neiG8FLthSkeiPdG88Iof5+pm/k4EKWI9YIbGEWm2x/iI/nyRo27kGvthsqBt\ntZhhpanmpkjG8sknJBd4rSam5EhouKYlJwREy2HfFPLwZFChcV0OqfQiD/dY\natDm1U9q4rTVHbp/kAy1S0SFqSD1Ud4tAmZ234p9r1SyYMSMT2B75SiVIL/F\nk/DQhAMcNUF5RDHFCTM3JKkx2E1UZ7OseO+d/5iC5xozpD+av/eCBLiDK9pA\ngQtQzZfORxhaGQQS6SAMnzYlsuMSE+Jy9hyOH3OU6xqSOciB1Rk41Pb71p1S\nmewRUiljgp7OAQZbs4oMPNQJRe+TqlKWMyjpNAiQJ3ukv0ieX/xWz79IEC88\nYe9S0x+aZxDZKWy2TONl9pz+Llpoe1AFtaPzjFH2dtM1wHzveCy4Wi39KT5n\n4JwT9RMfmtjObcdlx+P1wgcFf3dAlqxVH3cQA4+MFxs84CsxWXqEURuj5/jU\nicr5\r\n=hCmn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC+NQprXGqQjsbrarMnni+tVQNAh5nomBOVTw8BkYe2gwIhAIcSe6Yt3M8IQiVxIB9owchfNxoC0s5pqAHh2pT7GxTE"}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.4.9_1524411032139_0.9097959421646553"},"_hasShrinkwrap":false},"1.4.10":{"name":"cherow","version":"1.4.10","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"lib/cherow.js","types":"lib/cherow.d.ts","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant","lightweight"],"files":["dist","lib","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","build:lib":"tsc --skipLibCheck -t es2015 --m commonjs && rimraf lib && shx cp -R build/src lib","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf lib dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","bench":"node scripts/micro-bench","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/mocha":"^2.2.48","@types/node":"^9.4.6","clean-assert":"^2.0.0","coveralls":"^3.0.0","cross-env":"^5.1.3","mocha":"^5.1.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.58.1","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","shx":"^0.2.2","ts-node":"^5.0.1","tslint":"5.9.1","typescript":"^2.8.3","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"46bcce7b35a78eee515d2e7adfe3bf62b71ef351","_id":"cherow@1.4.10","_npmVersion":"5.6.0","_nodeVersion":"9.11.1","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-NkXbAMa3469rMoxHxDEXLyp4VYLBy1gzmXrG8MJrcNG0/4p+WuoFmtIEX8Dxp85CDF0CATiNxmVBNjPPs/fifQ==","shasum":"f045b1542670f27cdd8d5ae2c16735280dedf1da","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.4.10.tgz","fileCount":63,"unpackedSize":1203340,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa3U3+CRA9TVsSAnZWagAAapoP/2ToluXl197EChYB+nUl\nuvWw4f9UvmwTol4UdwFOudrxd4Rd92VpHsWNJnSoQ45VYlJ90h1DNVHkrwxz\niPoLVuKNILZc6KHxlMC9otpzCPcV3iSZho4iWTs1YXeLqq5W+HaKAj7rIUXG\nOR/hn1WpwzwSMvsIwhIQKnVhglMUjnkDaqEF/HKfnZEDk9PTqjouBPgzmL16\nCb7bSeoaTE5drIlPylZFGUEyJpHS80WAeugG3mtxnnUuwdwIw6i9cNkfGDGJ\nmJYD6/1BxmBZKu4G4lShzsmFBivuONOFR+tUpo+hMDyS0tvKB9HanP4n7Ny/\ntVAoNbhSMhrNbqoqHjLkskMQ0NMQJ9cQ6w2K1Lpf+76+8jYvriKAmrtjHitu\nT8FBBnYcUe7jZz0+Ie1FRplhA+hrMHN6A0KznotBUFP5rRF0fCK22g3kifiI\n2gKmCpN11eGG+TrfJ1uPi1UUXUpeetV72GbDWckblWCKFxBB9ghrQX7KiqAJ\nDnH6Hw9m+NgnNLyXPIyYSm/VQv+6c/5dsFyhYVN04p2O8E2UtQBJylxWJ2bn\np5HkXaU/c53yDIKcrXciAubHumPdt490YLSbCke14w05xG0/eUxkVOrJlXfS\nQYiRmisIYDojynWsSew+0VKhDadG7eCfk+PBGdIcs04hVtNGd+P0sWDeDsWh\nut0q\r\n=CuWE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGO+paa4tYfEPvecAeJM1weH5GlYGmrqWNs+uptExBH/AiAweM9JhosY8QPLUOw4ObmxIKxxhMWJ9enWw+yE7LQwYg=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.4.10_1524452860456_0.6570417306373177"},"_hasShrinkwrap":false},"1.4.12":{"name":"cherow","version":"1.4.12","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"lib/cherow.js","types":"lib/cherow.d.ts","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant","lightweight"],"files":["dist","lib","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","build:lib":"tsc --skipLibCheck -t es2015 --m commonjs && rimraf lib && shx cp -R build/src lib","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf lib dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","bench":"node scripts/micro-bench","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/mocha":"^2.2.48","@types/node":"^9.4.6","clean-assert":"^2.0.0","coveralls":"^3.0.0","cross-env":"^5.1.3","mocha":"^5.1.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.58.1","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","shx":"^0.2.2","ts-node":"^5.0.1","tslint":"5.9.1","typescript":"^2.8.3","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"d4508933fcbbf11985202aacc01bf4bcd9118bf1","_id":"cherow@1.4.12","_npmVersion":"5.6.0","_nodeVersion":"9.11.1","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-Bme/8foMizVCX1/BIhUJBa29QqlC/xB4gyIrL5fpZj4zpTjFXK3+fiBLaCZQuIoWHV1ANn3oYuESH66mmlAQ4w==","shasum":"0b2cbb7ace7c23dcca270bd6130b7f80e0b76114","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.4.12.tgz","fileCount":63,"unpackedSize":1223100,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa38NkCRA9TVsSAnZWagAAxncQAIH2Y4nY5KNTZqaV7uIo\nRMfF3EdSroO5prPji9jdZQvDLmHS1FI8FPDTDbt19ypPkhKz/uL+4neMLBDs\nW4JZ+iDagxfGTVCbN5SyLl5Skn1ATRlZqfNuc/gnx2PpYZ0sQ/iX627zBCjm\nAIdRwfR9VPeQDhzjQpTZ9zSthAB1LVeI6/VJYBeKKjob5CF4LdTnF6+Ij7Yt\nRMm9ukXrw+Rd5S50g4f47UjFayAzv9n5MdOxdoAp7AyCF7LaOGheygpKAKBX\nRCxor4F2krJhUzvNvFUuHSlX3Y1EQSuuhDRoNkrYUUhHVRBTHkqEEGCKxyYB\nlv8IOQ8M9th/2rIs/IWn8t/ZfueZNRRb4bkOOGpJxcLHTrmYTvxloQ1XxLA/\nPS5V1sMk6htjkHU5qwACNl/aMJDMQ3cAyZKZ8MupIWxV6orEuGQR+DwxsGm3\nKeHuJ5k3yl/ZdOsLzYCTwQ01N7hydx6Hh28MXW02pnHobtBkMUXoO+Tvzhlm\nOWsWEn+6BMT8/9fWCxWcn1wCEulkchHaStp1v6KDymdxk49V7Jt5cvpvAhbo\nloJQUWXndzim12xABJjQvTPlEW6M6BRAHFG6ort4E+l3V14I4rJxpKZn0iDl\nm8Mt/Ax97/C3XRiZ0IC0EhK/rASSYn9zJmRXfSNzW+R9QWH1wp5d7K/laCb9\nsiO6\r\n=6LPU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG8JhSZ4sZx8P0YfOipLlFQ5Ku6t4huYVE2zTCTcFBoDAiEAk0tKk7us54wcQSQOHa8cR/vyiE7hb8TdjcQH8DTy77c="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.4.12_1524613986345_0.19467547807598984"},"_hasShrinkwrap":false},"1.4.13":{"name":"cherow","version":"1.4.13","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"lib/cherow.js","types":"lib/cherow.d.ts","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","parsing","mobile","tablet","estree","es2018","es2017","esnext","javascript","ast","tolerant","lightweight"],"files":["dist","lib","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","build:lib":"tsc --skipLibCheck -t es2015 --m commonjs && rimraf lib && shx cp -R build/src lib","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf lib dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","bench":"node scripts/micro-bench","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/mocha":"^2.2.48","@types/node":"^9.4.6","clean-assert":"^2.0.0","coveralls":"^3.0.0","cross-env":"^5.1.3","mocha":"^5.1.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.58.1","rollup-plugin-buble":"^0.19.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","shx":"^0.2.2","ts-node":"^5.0.1","tslint":"5.9.1","typescript":"^2.8.3","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"d4508933fcbbf11985202aacc01bf4bcd9118bf1","_id":"cherow@1.4.13","_npmVersion":"5.6.0","_nodeVersion":"9.11.1","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-uajM5v1Nvgnk41hWtj8Ukt+MbDjPDa04C/h8KiJUR0Lman/cpuzZfBmOUFT7H0UWLqxsIeVtha2Tsb5j669aAQ==","shasum":"54ddd15093d2bc1afc789bf38c76c5df3256e2b1","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.4.13.tgz","fileCount":63,"unpackedSize":1223189,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa38SCCRA9TVsSAnZWagAAwBoQAIpq064auh1D0moePnYS\nToGUexXVre4NBYMB0qkgzlkEw+qeRlF3lOvJ50ixGnUwteHoF2WVFF7Ex94F\n9Fg0KWVNeXoCj4cgCUhNMqw1WHz2nF+/tgFEx+/s0GzVg9ViTVHw3Hbc/ChR\nSIYj3ATIjKbwEyAS4teBpPEL1EdaJzdLRxWWbFJky5A4/UvlWnS//5U/nK0t\nRmhre4jvqFcBwNN0CrAnKg4Bw82LUT2dphxuDD4X64SCwSehIBdb2ImSL0NO\nUxVCnCBEPDvg7G+crQVqwfKHwIqDlNDR9H5+n684PVTz25YYKAFazpBkOkxI\nXLMTLZVDmZTcLkfGWHTaOSEZA9or13d+hC7U1ri+jWKqzJEY0FWbsjoWqC4m\nNN7Xvwdi2KNpNpasuUMTJ7eHjkrDixRWx074sznI7DxPgR9fIO32i6NxtjNZ\nxFu1UdUaAV8AFiRE3/Jg9D957Kyb+V6ynCwuh7BLnQTD+SLWgrH6sJ3FLx6h\nFbjS97tce3G+KXurViiQrJnGAPL8bdLIZLCH9Obc1pgaticT/3ToTkhuZ7zz\nI31UDlaf12urXSb9Q6hsy9CYzwxtHC8tiyjieKq7z8hE3V2tV7rMVa1Q3yte\nbIYPCc5qwHyLb/r6hKM/yZ2GGq4dXVs34kJjSuE7cnC3GmsKJIVeC4tVcIRP\nx+TN\r\n=9mrn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCz7roLJB1PiSHJgB0OVjzz70LbAlYtDYOlTFeBUDqwDAIgQFolHrRAE+Oc5Ux7qxwRtnTWPSLWb7mTk5kBVqZ2b/s="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.4.13_1524614272101_0.31446863196990904"},"_hasShrinkwrap":false},"1.4.14":{"name":"cherow","version":"1.4.14","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"lib/cherow.js","types":"lib/cherow.d.ts","module":"dist/cherow.es.js","jsnext:main":"dist/cherow.es.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","esnext","javascript","ast","jsx","tolerant","lightweight"],"files":["dist","lib","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","build:lib":"tsc --skipLibCheck -t es2015 --m commonjs && rimraf lib && shx cp -R build/src lib","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf lib dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","bench":"node scripts/micro-bench","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/mocha":"^2.2.48","@types/node":"^9.4.6","clean-assert":"^2.0.0","coveralls":"^3.0.0","cross-env":"^5.1.3","mocha":"^5.1.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.58.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","shx":"^0.2.2","ts-node":"^6.0.1","tslint":"5.9.1","typescript":"^2.8.3","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"f74bf98716911d519dd96c7478d2b25e8e53e5f9","_id":"cherow@1.4.14","_npmVersion":"5.6.0","_nodeVersion":"9.11.1","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-3ipoMQ9TH7nV9Mlfufx25PyNRonyoMvZD849ymV5J5SOpmSGqVXyECrjwuWWQMp7ZHV8GF7EkO99xAYXqfdUfg==","shasum":"8fc20ac4478cb825d8bc8decfc3825a14346d3a8","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.4.14.tgz","fileCount":45,"unpackedSize":726562,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa4fEaCRA9TVsSAnZWagAAJowP/ilCsruLYRg3B9S+hWhS\nCUU3RmMI02qGxIpQqaJLWsDZcLKz2UTGc9iPb6Vf/9x/uX7IQIojHUuibLXV\noxaLHwwfSHrHoOuz5z4b1gmYq8bQv0JDe3xK9vVYsKM9XkqUG3U7EhtIlvx7\nQzsR/DhG7ZHDYOFM4oLhux9b3llWwbkoU7+ApMXXrROUtsrkWE3gglBuAKX9\nSdCZyoXc+2N395+KbKGUzGw1VsKjpQjKEDQTQQmj5YKqhQs8K/B+qXKzzRBs\nFd4UWq4qIpOau3Z/FfOdvSUrCk4mDLH4kMWwAhwx9cChNOl8+a3Ze8ykQ3tS\n/CUy/sJSAOQwQfu8749PmAYsj4I+zhNbudnqMgpHvJD3dJuzGdauoYzPVIcr\nP1bYkxoHlNIOQHgVX+mgWHC7f9//LL/J2IHzdTsR3l42F63/OEku0JXmaDKn\nE3/vM6Tu8TVDScLBlPLQfh46/+/vRQp6s5urBtgJMfrO1xgLi8GzJG/M43tk\n/CuhDw3yDb8/yyPiyiTj4/+jpa+AAarxOrhH0jKS+joQEqVP0iVeFj3vtAfD\nJJa6XYGP1+/6A3zy90W57v7rrinOiilBrZ2JdfEDvq80yK8YktlYPCEhG5lF\nbHb9N7I9SVC6Q4P++sSddzAfoEN2wQQctU1SfXV7JB25tJyrvUrgF+fuQLVN\nchRK\r\n=pMYo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCHbNwbbw4wvQlsc9rEDU/50YZFbaAPceowclxInkg1ZQIgXDxLCiPq1UaPzOlPJcHDhQpybeSCKsso17nMNjVEDPc="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.4.14_1524756760415_0.6971962198784492"},"_hasShrinkwrap":false},"1.4.15":{"name":"cherow","version":"1.4.15","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"lib/cherow.js","types":"lib/cherow.d.ts","module":"dist/cherow.es.js","jsnext:main":"dist/cherow.es.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","esnext","javascript","ast","jsx","tolerant","lightweight"],"files":["dist","lib","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","build:lib":"tsc --skipLibCheck -t es2015 --m commonjs && rimraf lib && shx cp -R build/src lib","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf lib dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","bench":"node scripts/micro-bench","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/mocha":"^2.2.48","@types/node":"^9.4.6","clean-assert":"^2.0.0","coveralls":"^3.0.0","cross-env":"^5.1.3","mocha":"^5.1.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.58.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","shx":"^0.2.2","ts-node":"^6.0.1","tslint":"5.9.1","typescript":"^2.8.3","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"f8198c3858fe26f8d32c245aef6b6391fd6fa759","_id":"cherow@1.4.15","_npmVersion":"5.6.0","_nodeVersion":"9.11.1","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-j5P+YLbDkKk2UfaZivCbpoKRvgVEiNtrgcff2pIlHSZbXe4cGMshTzuOyXYk7c9FWwEn73c5ndiNWNs2ibRgbA==","shasum":"48b7e755ca5199694911ea3e31b7e01a70fdfa9b","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.4.15.tgz","fileCount":63,"unpackedSize":913235,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa4h0ICRA9TVsSAnZWagAAWGIP/R0c8QQnSnzNl8oHLHLu\nzS2MoruBZA4gs7kyfjGdh3OYUvPHaf4zzWkk9rOMwmNNB0P7e2467a8Qs6Hi\n2RE1GAIB83B9YcMXSkHxkDaGT4I8N0bj8se65n44VIGfUDRPw1AY99wx55k4\nDK8W+ZgPB4aqTCes3/ZhY3aZ8PboaTrabBHaG7FIk9bGSXALR9mq8JG5nCTy\njo+5jSw6xHT8zbRWxU2eJ3JaQ6AiLHWR1UakCRfwAWCaffIfMU5onxcfg59E\nTAzg5yfKBtMLh8AfPyc3K9YrRFNQA6lwG22VTyxqmc54TyKED+7i9d4cILj3\nOW3t0kz2R6+MxDMf1FrrwidPd01ZgUkAjJP339IVD537/0yN8D51SaSWKTr6\nJX6pGOfYv83++Q9yctw3ScrsDO9u2d2OT5z4CRkHnG1B5X1sljJfsAUQTllP\npomx3oGqMW0FnCxMlKEWxhdbqRUAYYnKaEqgXthieR9aUPFBC4A0/ak3l+rz\nxSCONofh3TM4D9ochXepSO9XoxkJOe0IUKaNBUXDArVsNq3ClKAsshs9d5nz\n+bAFW8rmgBCJwlpW1OZ1C69uWodDwzbUcS/MlQtq9DcX+lGYn9cn3jER0Qqx\nv+DZt9xJ15YQ14KfxNa55h5LVy7SPCXGT+9A4IvTMyICP2u+q3jg1xa8t73v\nfkrs\r\n=ABVU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF6uibVYw0Zr5guMHiOj+A1eFfxQ/L35HadkazxLjjrEAiARXMS5plCElO9+Q4PxRS29kykTfRTiUxA2ONG/pSM/TQ=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.4.15_1524768006949_0.39265429077854175"},"_hasShrinkwrap":false},"1.4.16":{"name":"cherow","version":"1.4.16","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"lib/cherow.js","types":"lib/cherow.d.ts","module":"dist/cherow.es.js","jsnext:main":"dist/cherow.es.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","esnext","javascript","ast","jsx","tolerant","lightweight"],"files":["dist","lib","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","build:lib":"tsc --skipLibCheck -t es2015 --m commonjs && rimraf lib && shx cp -R build/src lib","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf lib dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","bench":"node scripts/micro-bench","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/mocha":"^2.2.48","@types/node":"^9.4.6","clean-assert":"^2.0.0","coveralls":"^3.0.0","cross-env":"^5.1.3","mocha":"^5.1.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.58.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","shx":"^0.2.2","ts-node":"^6.0.1","tslint":"5.9.1","typescript":"^2.8.3","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"81dc21abc818e6af3a52898870a1a9fa58202083","_id":"cherow@1.4.16","_npmVersion":"5.6.0","_nodeVersion":"9.11.1","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-GYtxlzbX2Bow6QOg6ukxBhQNit4ERPHzckcsjoPQGFnC88EzaaUWZ48vtcaSzlcgyoGrZD7Ix5wUOzHpzPIdcQ==","shasum":"e0aed9138c4b1f8a5f180cfffb4213e2b417ab88","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.4.16.tgz","fileCount":59,"unpackedSize":731591,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa5T2qCRA9TVsSAnZWagAAI7YQAIbceEoj958Cv9CWmF2P\nxnJcF2NpbQRDA4fVk5rcXW3dyJBDIWtmJ8M5q46ZM9xvCKeEJCKQg+Wz5hNu\nTDcupj0kqtWTp/WM5kT8dt3uEuamG4KWA3rfPG9gKYZ2NWRBbPcTAvyGyud2\ngpr7urkMlnek3tY1SKdsJZugPHAu/vGFVH0OqHyBx21sHCT7Im2Sn/g23JHT\nFROoryLKbJy+jg4crrS7mCIYq33FKDV1BoRqH8y2HZlPXttbaCaTRP773ok1\nE0Y3X4IJptL+x1AYfOw17vldLSIFzWzfmzE8Kmp3nRslOI/WRc1sJrZaHROY\n+YlUgn0jDK2F6n1SzlJ1nSc73UU1zeLBOixBIaKAE1Ju14gLE+Ruv9nmQtXU\n513E5uldGRoeDcgEWUyNnAizDPpJZugUpfR36NS0FW0F0I3SGPhWEjwUOzFj\nmnNY2/XHRUR/Zw3kE0/xuth3j9ODshFZh2IYXBcgEizbCkc8eUNyXiLInCq5\nY3+TTjAih0/+81r9ydIoDbqx6kKM47t+YiSS7yDP3TvlwtXSxeszv5YY/PYn\numXSv3cTgQ663pa3ab08ouqFxFBbA8nXhFJGE6gCGwKCsFRaX7Kk/wDPfVmv\nOuCcem6Omw9HnygZkbzzOew7zZKIfUEE7Ic0uZvCxsXNgjD4Np2HiTsrJk//\numS4\r\n=UKfJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCIUOb5VvRzTXh1nHOuHNT8hqiiKx5B/i6Ll77keNedFgIgOV1lnjBYZbdX0FuvNnQ0KwQoeJ0Hr3kSSnYT0VWJyyw="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.4.16_1524972969291_0.8626316796191325"},"_hasShrinkwrap":false},"1.5.0":{"name":"cherow","version":"1.5.0","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"lib/cherow.js","types":"lib/cherow.d.ts","module":"dist/cherow.es.js","jsnext:main":"dist/cherow.es.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","esnext","javascript","ast","jsx","tolerant","lightweight"],"files":["dist","lib","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","build:lib":"tsc --skipLibCheck -t es2015 --m commonjs && rimraf lib && shx cp -R build/src lib","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf lib dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","bench":"node scripts/micro-bench","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/mocha":"^2.2.48","@types/node":"^9.4.6","clean-assert":"^2.0.0","coveralls":"^3.0.0","cross-env":"^5.1.3","mocha":"^5.1.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.58.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","shx":"^0.2.2","ts-node":"^6.0.1","tslint":"5.9.1","typescript":"^2.8.3","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"f56b97b4472cf356b1f4f7aba389167bb8d89199","_id":"cherow@1.5.0","_npmVersion":"5.6.0","_nodeVersion":"9.11.1","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-S7vIQ7a5tlayNKioSpQfN46dCn0YZnt+pq2PFuXYaLRX7ci1MT36MttsYJ0GoeFHyGJmqepQZGUgtZZXUSYZVQ==","shasum":"f79414cd5c98e2e1d63350311be1020ba8cf1b32","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.5.0.tgz","fileCount":77,"unpackedSize":781006,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa6XiICRA9TVsSAnZWagAAKIcP/RXoLsIgJI7u4uuIBXWz\nqLs7PnAHYCsnZNs9qVcLNrsnmpndvYUf/33KS1sZcmg7IIk3N+XYKfjMF/Pd\ntC17DD5XEIQ6+eFeu1iax+XAZkgEYbprPig6hZUatvYvEYhKJ47puOucN/0w\nbNE2E1MK2YNGbneDigmypyWcv1TA7s7cVTpn1iB19m+HLE12T2uTIik9Iia5\nGIh+smzv79H+5g4DYxLcjcd/mHBpluVke5VXWSpiyOu1z/PpAmp7bhPIzJic\nuwlVbAWoXkiM03zTt+p1wdzRhDeKuSREUMknpKHGz6HiUaiW8aC7RuMyuFvw\nQuStvB9HE67nXMNd+eoRF75BX97h9nI9QMGRTRKOLhSnEtIOWJ/lfLq4n/YY\nYocOAlpfbWlHesiSq32UCyKSh4ubl5uM54tBk2HG8o9fCqpFcN1qCTnNVs03\nZrz05yG1v0+QSx36JvQ+c07UhU87++x+hKgNeXChvXAu7mCzeSqAyyIbJpi3\n+A2OJAoq0SVchpMUtcIS2KQtG7A8XxWs7+u3A9H9Jq2UV/kdhlzfJXyJE+Hq\nucvNxfzsVffjQ+ixH8SKwbVqQ2JpMxSbwJ6/FgPBRJ4IgTBb+4053CiiBOCb\noeXZZXRbUP0i0tnfUmm8F4R/f9Y1K51WwJIK83+X5IS/gjvLJ8MbVwzNgGBc\nJDia\r\n=Str2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICzyflJhszADs0LLSBbM3vTB8mY82p0jlBw4YXqpog9JAiAtMkvvEzPWxCOupET3s5t6VJGDdvaq0fYBP7t9i0d81Q=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.5.0_1525250182971_0.4777880398936931"},"_hasShrinkwrap":false},"1.5.1":{"name":"cherow","version":"1.5.1","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"lib/cherow.js","types":"lib/cherow.d.ts","module":"dist/cherow.es.js","jsnext:main":"dist/cherow.es.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","esnext","javascript","ast","jsx","tolerant","lightweight"],"files":["dist","lib","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","build:lib":"tsc --skipLibCheck -t es2015 --m commonjs && rimraf lib && shx cp -R build/src lib","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf lib dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","bench":"node scripts/micro-bench","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/mocha":"^2.2.48","@types/node":"^9.4.6","clean-assert":"^2.0.0","coveralls":"^3.0.0","cross-env":"^5.1.3","mocha":"^5.1.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.58.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","shx":"^0.2.2","ts-node":"^6.0.1","tslint":"5.9.1","typescript":"^2.8.3","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"5a36c29e1bd01dbc89fdd2f760af5c1b7c3d706b","_id":"cherow@1.5.1","_npmVersion":"5.6.0","_nodeVersion":"10.0.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-Vy5CGMf2VzVpZ5USp9u2m/SyaDP7h6tGxyRvmmkz1z9UhFJxv0rFSwEAqlVunY1qlMy3PHDs+UIpTJ/qYu9ZOA==","shasum":"44a017d5a6746b9d088bbf600be2f478be0f9053","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.5.1.tgz","fileCount":84,"unpackedSize":927195,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa63/SCRA9TVsSAnZWagAAsPUP/jlxXK4xRIQxHd5NQzN1\njnmUnVaXQwpOfILfmoQl0jBmIocmL9uruJ6g5eMUltr74dWA4YIWZzbeR4xB\nNw5sLdaHgOIiu/SNSHQR1lpwwXxsu7gBoiBcWj0i7djGjgXdDyBC4m03CJsr\n7zgqb+46S9ql+FuAXAfjEQvVMKQSyvOYBTbu3U+cxp/dbetL7TgvfS2djx8P\nJ4gbqpuyZ1LVwdPtvYONeE4ivwHLoMzjgV7PjchsE6b3ciH/LrngxPPvEvrm\nUd3F0ufbGvBNfRbWAKOLibfgiUkzzKnTXEBycH8takfqiBw2HIRn193eviwp\n+Z/wYvsLS0Xltk6Hq7jEu5yojIcg1OG7JMimRgwDxHYSUDqFrbOG4Yd+kr6u\n7sbEfx5mk8jo8YTW9QhdDzN64OWqBDCNGn0tBYgIPlFs8yOz+cWSEiGmvtqA\npZgC5nSPfS8N9w9XB5H8XWqbA/ntF5BCgb7MGGdDIBMsXciJtcHK82ku+C1H\nrbdlW0Y2WtJGckp080vM8+20OJT2nudPTjR8pG5QnAPySkziiPmm9ZLqqV1r\nyu929PrAuVYVe8HbbHRaTNZn4KQ1apQsNYWFrjCZQrO3HlMniloVzIUzft1V\nNgQmT+V4eq1FURNP0IUVqVNY2onGRkujqNrAISdwRUqt+ySdWtNfkxQHjq1p\nbohV\r\n=/whm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDAW2JAgVH/8GRPqapm/52mkbL0ofH7itBjuOzo2dS+XwIgAaSJkwZlF/g6gKFxWbWjJjAZM5/rmnroskEwfSSSKn8="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.5.1_1525383121026_0.8128185567665951"},"_hasShrinkwrap":false},"1.5.2":{"name":"cherow","version":"1.5.2","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"lib/cherow.js","types":"lib/cherow.d.ts","module":"dist/cherow.es.js","jsnext:main":"dist/cherow.es.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","esnext","javascript","ast","jsx","tolerant","lightweight"],"files":["dist","lib","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","build:lib":"tsc --skipLibCheck -t es2015 --m commonjs && rimraf lib && shx cp -R build/src lib","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf lib dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","bench":"node scripts/micro-bench","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/mocha":"^2.2.48","@types/node":"^9.4.6","clean-assert":"^2.0.0","coveralls":"^3.0.0","cross-env":"^5.1.3","mocha":"^5.1.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.58.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","shx":"^0.2.2","ts-node":"^6.0.1","tslint":"5.9.1","typescript":"^2.8.3","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"c7d5d38c9a0201f8c8dba8996b3da5e6736161cc","_id":"cherow@1.5.2","_npmVersion":"5.6.0","_nodeVersion":"10.0.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-Dn13NmQNDjwPfsRLxf1nIamxtXGj39Wr4Xz6plkLlh3ovIz4KOMc2b8U5gS+IpFlw0+cS88X4Gf21Am6D7+jCQ==","shasum":"b1df90c3fbccebb22a0b14a0636e3d4eef646ebc","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.5.2.tgz","fileCount":84,"unpackedSize":940303,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa67R9CRA9TVsSAnZWagAAPKMP/i3KVKbmYzqPSTeGxmRx\ndrBoMOKopty8M7xLJRcFdzt0khHWfY6vrBeOMuLzsY1hTi+jE+LViqEHEBxY\nQLpD3xILsLF/abeis5ugZkL5bJ9M1MkQzEx00xdnI7+FsFgXNA+KLpzcY7AX\nzuLSEV6BXBjRKwxVldjXEvpB3x3jO8unhWlGi4vD908Diji149r6SR8GrVtu\ng/hdMd/Z+vSIXnIPFfmy7zs5bKzN5047kS6eVj6/tubK4kFEblGOwGbAGyBN\ntDqoON8shMpBg9JGyzCc+uWx4AZHDAIGjyA21Hxp5Vd+OUC+Q2ELcCNwVxjM\nrGf5GjV/7cio7TB/AIGyPuEo25GJym/6C707QV56yunqm/693/HuFKwttlDg\n2cnWuCZfc2TIXBW7V8P2oZ5CaLu/ZcXitiP0ynzltA0tjhClFIIBgabdrZiF\nz5ahYMXR23amEGPOnP4+sGG9WdyiVVaQahEkViFC1aAANR69H5xVjrdCV2Zj\nr6m9pDPs+h7xi8uqMB5VICqScZgdg5hFz+nndHmQk8fILfnrOsfU7qvrRooN\nGiEA1YZmnInS2b2h8bbLPD1ijP6q4Rrhu4SkY4xItEMR1ATS7xnDfOEk7AfD\nfnDf75qeaK4mQf0d7CCsCXkmNPwVs6XGT/AwsH74xR09igrhoDKJdccp1oVp\nkOm0\r\n=OE45\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEdjzQwEcPIMpwHItrkOEis32cNW603C51GL0m4HvbJ0AiBvbl7n8BDwRzXMcp/P9N9Zxqu83xwbII4lAj+Yh9irPg=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.5.2_1525396603239_0.041456805324749935"},"_hasShrinkwrap":false},"1.5.3":{"name":"cherow","version":"1.5.3","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"lib/cherow.js","types":"lib/cherow.d.ts","module":"dist/cherow.es.js","jsnext:main":"dist/cherow.es.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","esnext","javascript","ast","jsx","tolerant","lightweight"],"files":["dist","lib","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","build:lib":"tsc --skipLibCheck -t es2015 --m commonjs && rimraf lib && shx cp -R build/src lib","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf lib dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","bench":"node scripts/micro-bench","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/mocha":"^2.2.48","@types/node":"^9.4.6","clean-assert":"^2.0.0","coveralls":"^3.0.0","cross-env":"^5.1.3","mocha":"^5.1.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.58.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","shx":"^0.2.2","ts-node":"^6.0.2","tslint":"5.10.0","typescript":"^2.8.3","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"942a51b2dea7aff1462d12a9e3075ffa3b716dec","_id":"cherow@1.5.3","_npmVersion":"5.6.0","_nodeVersion":"10.0.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-UOpcUjmDNjR0H/pngR1VjYuYtavSR9PBPuqxF170jpgT/PacnqosjpbPxQBLqStctcSG+IvUOtyYtaCn0u3Wxw==","shasum":"86b454ea1b36b647dc273261ca72176839107156","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.5.3.tgz","fileCount":84,"unpackedSize":940391,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa6/WZCRA9TVsSAnZWagAAw78P/R2AE2jNGtWibHZzLGvD\nz1je3RfrtNkcNPfyrvhZVUHWYS8xCnvZTZgGgn+BmsoKbbgwbTOeT+KoDAY/\nPYJAn7gcmA9DCGa3A+QzqY6xeG66yD9r4BnE8gib9dgb4j4QvByf9Slo+39F\n4zSqXBhHH1N1351AuJ6Z8aw4NQ6uZqDyInX/BI3NvsebnfY4YdUVpLV9I6NG\nnlruffe8p+buFXOUZOHHDItU58uea3Vumg7h5Iz1A5CZUit3OOU3VaKey6Wu\n/ZAI4pczxHdzmH/zXCYRS6MmVdS70oF1R/IzR4lMhhV2cwAhpjrFEpQy7/uq\nftfZzDEcAXWPafR7Y6EYX62agKsluOLEEg70olGGHdl4iiOh2EnqhhoaaD99\n06kUW7kVxI6zCgWuYmaeShMzdnaUrvSuPp/T8iQvRO3z35KGepRKnm5wu2BI\n8dTbbMV2xTl/ZyUxS+SWsy3UZ3jAuYDgXPUqztwisLJmTY9Z4imgSEuos1Eu\nieXnIiJRrNIXQE9XsUQtR5YPlZQ5CxYpAZQ2vADJNMuSETZRQVCGT7lVHBqM\n1zx3OvxDiPHrN59F41T5xVix3rL81tc1qDrf/uKC+yX5hetC8CYloLy3lRsu\nYshJDoj1tYE4+D2G3U6Vya+C7qwoqyircy89hxiwKfS/eIX0v1InFtKPDWA1\nKJvv\r\n=Nh91\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFkJJ8ZtJKa8MYrcREmnjJjWb7QWObbuJrvLs0daA7hLAiAYkBadiwNfT/VBVANRxBT4m8n4HZaT6pvpZDGZudlXyg=="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.5.3_1525413271547_0.46595290737768"},"_hasShrinkwrap":false},"1.5.4":{"name":"cherow","version":"1.5.4","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"lib/cherow.js","types":"lib/cherow.d.ts","module":"dist/cherow.es.js","jsnext:main":"dist/cherow.es.js","author":{"name":"KFlash"},"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","esnext","javascript","ast","jsx","tolerant","lightweight"],"files":["dist","lib","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"build":"cross-env NODE_ENV=umd rollup -c","build:lib":"tsc --skipLibCheck -t es2015 --m commonjs && rimraf lib && shx cp -R build/src lib","minify":"cross-env NODE_ENV=minify rollup -c","test":"mocha test/**/*.ts","coverage":"rimraf build && npm run pretest && nyc mocha ./build/test/**/*.js","post_coverage":"cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","clean":"rimraf lib dist build coverage","prepublish":"npm run build","prebuild":"tsc --skipLibCheck -t es2015 --m es2015","pretest":"tsc --sourceMap --skipLibCheck -t es2015 --m umd","bench":"node scripts/micro-bench","lint:src":"tslint src/**/*.ts src/**/*.tsx","lint:tests":"tslint test/**/*.ts test/**/*.tsx","watch:tests":"mocha test/**/*.ts --watch","watch:build":"tsc --skipLibCheck -t es2015 --m es2015 -w"},"devDependencies":{"@types/mocha":"^2.2.48","@types/node":"^9.4.6","clean-assert":"^2.0.0","coveralls":"^3.0.0","cross-env":"^5.1.3","mocha":"^5.1.1","nyc":"^11.4.1","rimraf":"^2.6.2","rollup":"^0.58.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"3.0.0","shx":"^0.2.2","ts-node":"^6.0.2","tslint":"5.10.0","typescript":"^2.8.3","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"gitHead":"9ce8714e4a5cc90f6c27e320a606a02a64501292","_id":"cherow@1.5.4","_npmVersion":"5.6.0","_nodeVersion":"10.0.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-6b8oi2qaC+1wUo/mzK4ZQky1IatM+5AhvJbnrBzqZp2cqRGV00mGnNFDKjVwuz+lG550ufa7U+sy3uxU+xbJUQ==","shasum":"85efcefbdb1d2a9a93031045872da82e3c51918e","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.5.4.tgz","fileCount":84,"unpackedSize":943203,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa7Au/CRA9TVsSAnZWagAAqWEP+wb6gp6T7gF5uvgxBwH4\nnmcu0vPRm/GQ2Do7UZlogQBNKdnjXZ17W5IWAxLjPyeH4e3Dub3oymMI+OPR\nD9px6K3lwPVV9wDRbZVLQEyfswXWbQPGBqUVFJnnY3hRLh4btnDXxvuHqdUR\nRijbn9owXrI/x2MtOoqyT6oNDlJuGEU9Zj1mrsqMcHMoR/LoPpbl4iuMR6/C\nkKni5aq/tIpOKnSHL4vfpVjEQlAhab5dSGnEmQZAgJP/kHeeyMXOUoaoOjcX\nacotEgRaNGlqz+EUEW490bovzYuqr0pOf5BjJQAd1iENwHPRY9uLqBTzo9rb\ny4h+14gdz02kOpjqDTwNh1fMgR+onIgUhSABK2KEzr2D0xEL1Z4Vb0PFH/n8\nqsDJYNATsfAqu27Psa91qqivMGxHjMETk5i9PtpODkjK9Jv90dRjvTiCB1cv\nhirgb6UheFU8Nwithm9Gxh1wh0xApT9qhG7y5fTl9F72D4BdkuO2x74tV2pR\n3s6Uuq4XF5kF3oxso+d1JEt8MwG5qtdYPcvcr7HXOEF4fV4aajNhPqbdtX5S\nMGu4CO5gibFjrTBNsu6y3rlFXvy0ti5MmZisptWVtEmsmdR+BQYqB+lPxLvr\nBjMRyAPjbq/FSh6upxUBS668woRlCLVXXP+WNxDUqjHM/sDC4pEn7IZZkw8H\nOJs/\r\n=7B4h\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFh1RqKjKdUVrul7KTrARoiTLcAkYXEK6EShHSDU8lgjAiEA9TBmxhoXZAG9cCEaKKtU45vEmrAeKzH7wMgVsm11gro="}]},"maintainers":[{"name":"kennyf","email":"kflash123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.5.4_1525418941535_0.8502306961593562"},"_hasShrinkwrap":false},"1.5.5":{"name":"cherow","version":"1.5.5","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/umd/cherow.js","module":"dist/es2015/cherow.js","jsnext:main":"dist/es2015/cherow.js","types":"dist/types/cherow.d.ts","typings":"dist/types/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"lint":"cross-env ./node_modules/.bin/nps lint","build":"cross-env ./node_modules/.bin/nps build.default","minify":"cross-env ./node_modules/.bin/nps build.minify","test":"cross-env ./node_modules/.bin/nps test","test:watch":"cross-env ./node_modules/.bin/nps test.watch","coverage":"cross-env ./node_modules/.bin/nps coverage","post_coverage":"cross-env ./node_modules/.bin/nps coverage.post"},"devDependencies":{"@types/mocha":"^2.2.48","@types/node":"^10.0.3","clean-assert":"^2.0.0","coveralls":"^3.0.1","cross-env":"^5.1.4","lerna":"^2.9.0","mocha":"^5.1.1","nps":"^5.9.0","nps-utils":"^1.5.0","nyc":"^11.7.1","rollup":"^0.58.2","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^3.3.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-typescript2":"^0.13.0","rollup-plugin-uglify":"3.0.0","ts-node":"^6.0.3","tsconfig-paths":"^3.3.1","tslint":"^5.10.0","tslint-microsoft-contrib":"^5.0.3","typescript":"^2.8.3","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"_id":"cherow@1.5.5","_npmVersion":"5.6.0","_nodeVersion":"10.0.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-KXdAopo5INKgyZEXzKIlBTkyOc/gLr7pCoI1hjQpyJI/OvU4SnDaSeXxH4FpjenkA9MJy9cMjSJWvrHZS9IcgA==","shasum":"ace0d28f4a73e1460d414dea3f32d7715a387c8e","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.5.5.tgz","fileCount":41,"unpackedSize":2068316,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa78SlCRA9TVsSAnZWagAAEB4P/jaxze4OWg54DYcOxdyJ\ngJ540OIUlDYB36+F7u7tBtD0ujfwPYhrKWTuqpKjUqe/Q/BkDWuM1Q3R8XIt\nJRrdSwDnJE4a4MupWeAFdFs/CFOBhij9j2uPa3Ia6W8B6sEPdwKnNLAfiGjQ\n+YaorALouyEQCyinUr2lwoQX7caQ8GVzpb3Tc9d3xOh2oSYi9PTLhhibKTHP\ne8nynzZWbvwgIXpE2MsNSU4I8OPhmIkIqO/64abkIoIF6PGQOolPOc2Ewp5e\nuwR730x7fcWvMxiwsIZztJ7hLCGwI8f5EfSIIO1OVRyW7WlgEVbPThNjFUH7\nRG90PejdSaVgDbQiw9hoOc3aV9GiGBHg1G8XeODFrv/N5wJKA95sM5hUREiv\nlQ9joZQ1ry/sFsgCHZU3m37UrBGBGDVzxFWgLBKhCuUjWnNDA46EdYJGAnKd\n/YprTDm2XfVNWkiqdtij6WjMBCRbxIO3TuyRdlrtW0MaOXldU+BVNl0tj6wt\nbYjGlKkk2JhzL6ubXcYeX8Ly8pEuzlZ7HUYf+vL9bsM6nz3jPX1YWRFDsFeH\nTq7FuNrSkFEUqmelcXvsHc3qAsUilej8VaCdUKM70HpjG5NxHjr/LsfLPw/A\nUAxiKJRhuv+Fl3o5M+jKV1/10TyW+lyFcRGJY14epCyFclE1zPSo+cQZ5qFV\nPO4F\r\n=uwOd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDglni4kDuWCluat+rL7B2Q3AOwMfBNPRtNQ3v5rVZT7gIgKq/L51ELrVtZ7xuRbGI7hIFFUXbNPaAtuXTQyrt7rQc="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.5.5_1525662884322_0.26640045254864697"},"_hasShrinkwrap":false},"1.5.6":{"name":"cherow","version":"1.5.6","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/umd/cherow.js","module":"dist/es2015/cherow.js","jsnext:main":"dist/es2015/cherow.js","types":"dist/types/cherow.d.ts","typings":"dist/types/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"lint":"cross-env ./node_modules/.bin/nps lint","build":"cross-env ./node_modules/.bin/nps build.default","minify":"cross-env ./node_modules/.bin/nps build.minify","test":"cross-env ./node_modules/.bin/nps test","test:watch":"cross-env ./node_modules/.bin/nps test.watch","coverage":"cross-env ./node_modules/.bin/nps coverage","post_coverage":"cross-env ./node_modules/.bin/nps coverage.post"},"devDependencies":{"@types/mocha":"^2.2.48","@types/node":"^10.0.3","clean-assert":"^2.0.0","coveralls":"^3.0.1","cross-env":"^5.1.4","lerna":"^2.9.0","mocha":"^5.1.1","nps":"^5.9.0","nps-utils":"^1.5.0","nyc":"^11.7.1","rollup":"^0.58.2","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^3.3.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-typescript2":"^0.13.0","rollup-plugin-uglify":"3.0.0","ts-node":"^6.0.3","tsconfig-paths":"^3.3.1","tslint":"^5.10.0","tslint-microsoft-contrib":"^5.0.3","typescript":"^2.8.3","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"_id":"cherow@1.5.6","_npmVersion":"5.6.0","_nodeVersion":"10.0.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-KobJ9YscQOXQiczyzmvWm1yyQ9WhhRUKA7cfE4ijdJ4gwIgUiLgXI9k9QGre1agYq2O6f2USEsoxnKEDdTQoRw==","shasum":"0a6bb1c373bdac8275221b199b95c7528fe3750c","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.5.6.tgz","fileCount":35,"unpackedSize":1453476,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa78jqCRA9TVsSAnZWagAAQ1wP/Rskd/tGcTjNwV4a5jvk\nfsbqWyMH9yT/H5DOiX2sF8+f0HIahNuGBWkXdk7P4hQ9XEINZV9KkgOBGzVr\nzfe5AWpwd3JUBE9KgZDtAfYyknglNGbiQzFwzJn/Z80vJNQHc9o93jc4nMWu\nc+P9X0SHu3j3A21y3xJJN9OWF4blLG865uUYsoZXdyeONcczm6Gb6iB4ZUo8\nefD7r4XNS76ulx33LdIrr+/DCje8n2dzMhDeefyT41ecukD/q5o4c78u5Hgp\nR0uylJSRMik295XPZetmdWsjDnfRZntHj0uFxJJ6vlx7Gk/u81UjD0PmTTW0\nXfUUsZSa3ADDItaGf9wJW7COvVwslzLcSjMB8SdVwbFgK5qW9P1nzx/71qQt\n0aiqc+uaWpnYSBJkgrCpyMkMKY8FrneLdGj8kS9XZtBVICYwPEwtWxBDcBpL\n4d0dr/xPZKeRzaOddNAUV1m5EG3Gcfm+Ejrw3cK38/1iHWfd7VKMETEkN8se\nXxaHxCHRW59y0wtV6JOBJabxjT2xr8/5K3Ir1nlHTNvH2cEXYc4WFYPXcl5F\nf3lGiH72wkP4/uQW9RyXVuVcXD21XDe/vlDpqzN0+QAVd4bbSJsjrcJK4iSz\nxl0EzhcfkvJvT2oMPlBADWdaaMutbeb/hEadCj+z5VAD1qnQ7/8XA4V3EhS+\nNbyU\r\n=6u7h\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCZt5rlSyVhmCwLEMTa8Jnpoh80Gf9C/qN1Z3bFmI3BcgIgAtCATUgJQbtltTyfsPAK6ZfLBQlMyOGwCkbLAfjvWCs="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.5.6_1525663976162_0.07203998680244705"},"_hasShrinkwrap":false},"1.5.7":{"name":"cherow","version":"1.5.7","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/umd/cherow.js","module":"dist/es2015/cherow.js","jsnext:main":"dist/es2015/cherow.js","types":"dist/types/cherow.d.ts","typings":"dist/types/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"lint":"cross-env ./node_modules/.bin/nps lint","build":"cross-env ./node_modules/.bin/nps build.default","minify":"cross-env ./node_modules/.bin/nps build.minify","test":"cross-env ./node_modules/.bin/nps test","test:watch":"cross-env ./node_modules/.bin/nps test.watch","coverage":"cross-env ./node_modules/.bin/nps coverage","post_coverage":"cross-env ./node_modules/.bin/nps coverage.post"},"devDependencies":{"@types/mocha":"^2.2.48","@types/node":"^10.0.3","clean-assert":"^2.0.0","coveralls":"^3.0.1","cross-env":"^5.1.4","lerna":"^2.9.0","mocha":"^5.1.1","nps":"^5.9.0","nps-utils":"^1.5.0","nyc":"^11.7.1","rollup":"^0.58.2","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^3.3.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-typescript2":"^0.13.0","rollup-plugin-uglify":"3.0.0","ts-node":"^6.0.3","tsconfig-paths":"^3.3.1","tslint":"^5.10.0","tslint-microsoft-contrib":"^5.0.3","typescript":"^2.8.3","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"_id":"cherow@1.5.7","_npmVersion":"5.6.0","_nodeVersion":"10.0.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-Lk1I2n7wixw2A40j24cyEi5LeghsfuO4hTGa4swm93W24dQ7oJv2+xZJt5iD37x3LaA5fKy1VDWSwvypz1q4Kw==","shasum":"aa24072fa20554c33c1f94d93fef7cb1c87374b8","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.5.7.tgz","fileCount":35,"unpackedSize":1453202,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa78qfCRA9TVsSAnZWagAAiAMP/0JR+ICbYTvurr8l0cEf\noKIP8QxEc159pW+KpwrvNrysRfDN8Zi+PgB771o4FlZXK9YQoXrnoC5LzV7P\nxLlMc+83Uaqqc29/nD4/b/LhXkHJX2weTf94fnNynNfU2ZAh6fSvtJ1ib6aN\n+ydwg1DswF2EB7X8mbfvf1ixL5PfbCqrK4qjnHZkxJVUCBLJGk0HBiiaFowo\n0wgwJwREFfCYtfCgIPNabuavKN7jVPUAa6q5snzNuV5czbUOgfef8+1FqM1K\nQiX6fUIDs11Elqs/wUq39UkBSLMBRFoRyx7awzH8GAvrUeyA3Hz0K39t0sd/\nXwtpODkqAyW7HJtJjCVmD0D8zbYElD6w7rLDt+zemgMAja1XwB7uhUkT/nz9\ncI0e9+0ETJzqKWjMZPmP+XWsYOV+4Hisjub5IEg/sodFBoMBF8B80t46tvd6\nLYkSKoCKVh43BkhOQOkWKxhsLbf/8yaiSfA/XThQpLrFaahTGm7HWUemLZPL\nmPGLKcFA6cycDioWa2CsEfpJ4MBReZ3sXeYvrnhytRaepk3iM52fRcFzQJ5g\n5Uz7LOg03i19Y7Ygq51/aduprn+MvK8sE/RGZpzRxAwEU6L56p48ey6IKM62\n4VeZwXvvyQNkxE2hFANTvS8g1jvMehwXysjUQUEeyNU1ynl9k/PLyP5ltast\npCnW\r\n=7E01\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCXtOOqgJiRaT/T0Csea7nntiRwPe6cMgDt/WhGNSWyMwIgaRTfnGb9t88IMlzi+euIfGzDnugKdb5xWDLLJsXVozk="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.5.7_1525664414369_0.14370956547302005"},"_hasShrinkwrap":false},"1.5.8":{"name":"cherow","version":"1.5.8","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/umd/cherow.js","module":"dist/es2015/cherow.js","jsnext:main":"dist/es2015/cherow.js","types":"dist/types/cherow.d.ts","typings":"dist/types/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"lint":"cross-env ./node_modules/.bin/nps lint","build":"cross-env ./node_modules/.bin/nps build.default","minify":"cross-env ./node_modules/.bin/nps build.minify","test":"cross-env ./node_modules/.bin/nps test","test:watch":"cross-env ./node_modules/.bin/nps test.watch","coverage":"cross-env ./node_modules/.bin/nps coverage","post_coverage":"cross-env ./node_modules/.bin/nps coverage.post"},"devDependencies":{"@types/mocha":"^2.2.48","@types/node":"^10.0.3","clean-assert":"^2.0.0","coveralls":"^3.0.1","cross-env":"^5.1.4","lerna":"^2.9.0","mocha":"^5.1.1","nps":"^5.9.0","nps-utils":"^1.5.0","nyc":"^11.7.1","rollup":"^0.58.2","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^3.3.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-typescript2":"^0.13.0","rollup-plugin-uglify":"3.0.0","ts-node":"^6.0.3","tsconfig-paths":"^3.3.1","tslint":"^5.10.0","tslint-microsoft-contrib":"^5.0.3","typescript":"^2.8.3","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"_id":"cherow@1.5.8","_npmVersion":"5.6.0","_nodeVersion":"10.0.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-fH/3/8MMC8ZCGGAoPq9+9SQ4bOyuAWgdO/cIIS3F8Kc947HVWUVHMJ1EAzUFc0zvUViBWpBv4lnrlxX2tt0+oA==","shasum":"851947781bc1dd022a9197ee3a32a805ecade26f","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.5.8.tgz","fileCount":42,"unpackedSize":2078951,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa8CVmCRA9TVsSAnZWagAAsnUQAJRPHK6/Zjm9EUAS8yQM\nL9b25oBZ5cFS8EOt3It7dGe7IB7OVD4z9gwe0DcIwokx6Mc29PzDNtkD1+S1\nXzup4kujurR9o4EzoyR2PAwssiIa6R1b3z4tCf8TGBs8Z+FyOqdOkyJvN2M1\nXsd3acY1WxjlhrjW1fYMkKNWtYV4B2nl52fOZ0AScS6clPNWIenGJtO+R8xg\nac+0Jqh70H1C3gd9VFaflfYPsXw3BTm8xSR7ngzkePZaFHax/U/UbtU9UNFj\nFcQ5Is1VzU7n2JWfrzNRYaM3r7L6m3b9YlgIMjH086K0aPbskiLUCtt4PTx8\nwJWtuwRC4heOy58fjwDwVGIuqQo2Uzp9u/871yv2JcJihwp1MDqJ42ffb6P3\n1i76JJRQnJcKH7gntbeacwg7EvZjL+B0FNKup2KwzHxD8/AoSas2SEJEfkWc\nRxZUmEKqPagqkf2rYnWN3yVmpgBFvRtaZZVeGNDEKMevYx+wkgNvfimjJAJ9\nzfM2TgSuny4QPfRyACyP58AUFT+XMFTF/oxCLC9qX6fyXy+kwUZVT7npHQ95\nHtoXV3G4oleKrBrs4VMhe0rfmnnP/eCxvGOQuXcIe4evCeip3gHe/n5LWjpJ\nhGJgYOt1la1FI7s3rmisNZjSlgWVqwyp76/9l2WaeRIW3XFLm+cKH5BIhrKX\ny+8C\r\n=LodH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHG5PNuzlqtyX5fCpgjBYzW4IFKF/fSaAC4Y7cf2x3+bAiB2yW37OaFQS0td/0qChuWEokaN3PlOuYfdyWCKufMYJw=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.5.8_1525687652672_0.7577059272029714"},"_hasShrinkwrap":false},"1.6.0":{"name":"cherow","version":"1.6.0","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/umd/cherow.js","module":"dist/es2015/cherow.js","jsnext:main":"dist/es2015/cherow.js","types":"dist/types/cherow.d.ts","typings":"dist/types/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow/tree/master/packages/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow/tree/master/packages/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"lint":"cross-env ./node_modules/.bin/nps lint","build":"cross-env ./node_modules/.bin/nps build.default","minify":"cross-env ./node_modules/.bin/nps build.minify","test":"cross-env ./node_modules/.bin/nps test","test:watch":"cross-env ./node_modules/.bin/nps test.watch","coverage":"cross-env ./node_modules/.bin/nps coverage","post_coverage":"cross-env ./node_modules/.bin/nps coverage.post"},"devDependencies":{"@types/mocha":"^2.2.48","@types/node":"^10.0.3","clean-assert":"^2.0.0","coveralls":"^3.0.1","cross-env":"^5.1.4","lerna":"^2.9.0","mocha":"^5.1.1","move-cli":"^1.1.2","nps":"^5.9.0","nps-utils":"^1.5.0","nyc":"^11.7.1","rollup":"^0.58.2","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^3.3.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-typescript2":"^0.13.0","rollup-plugin-uglify":"3.0.0","ts-node":"^6.0.3","tsconfig-paths":"^3.3.1","tslint":"^5.10.0","tslint-microsoft-contrib":"^5.0.3","typescript":"^2.8.3","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"_id":"cherow@1.6.0","_npmVersion":"6.0.0","_nodeVersion":"8.11.1","_npmUser":{"name":"fkleuver","email":"fred@avurad.nl"},"dist":{"integrity":"sha512-HGECwytKPg7yc+SNvjsI6lC2K9a1/xgasKq1rs6plECDVgduYKhpIymsL+O+zW6tVUgAvE45Ui3h6NppWxXN8Q==","shasum":"02db81f9b969f3c7b1231f648d0f5274bf6ccdbc","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.0.tgz","fileCount":45,"unpackedSize":2838310,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa84lUCRA9TVsSAnZWagAAU0sP/Rt/BNbUMUkdSAMRT/zg\nQuzGaahBkk9lp5HInUUr3BdnwlmrCg6ki/KgfyMNiFn4Xyb5OQn/rqFLepNb\nrt3ylnl2FRlI2Tr6O8emIJxVT7rui9thbZ6xC2Vp/i1foLXhVFozW9KxgvrK\n3cnqp9ch/JOwKnTWs2d4QAke7vELEtwCzMoKIfiZO8vgdDulM/Wy4Kvn7gl+\nGSWttpw7+uWQ66Zqr6X/NRy6zf2VDMCpaZlQov/jRJkyMr1l089DYyd9KC5x\n3NuGQk6nXmgbM+bn1n3ASGhMJzc7K+VRF1ns/9eD9FwvVNT8j8a+lucxAOmb\neMn62fQRCU5W8vTMCMFQEoF9edz5qXOl728/ZxXSGbeymR4WW1Aqsq712pMs\npu+gmlBzqgXDvMssuBpeVP5ttRESHhPUZkSI2TmYu0JYrOzTXNExwYCiJ1gG\nzbCPUkjY6L2xNj71r0Tm7TEN9H+FvAO1nylQ/hm6OW7fqxsbWeGipoR/naXm\n/qP8ohMjScrvA2YEyEdABi8f97qd7HLz5m47lxUtR2sEiQ36CojDwuMM96ab\nG+NUEZWD34+SBF4us2pPHEY/JlwR5aNbO9aM0q8YMmxr3FOLwhTEBWJ341Eb\nKU0jvoe/2s3VKLpJmh0wtFEjBm9oz9ecYfXwE3MvHQDWqxusyG/e3DLmQoZg\nZixo\r\n=lAuT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG2bbWfW/r2NLpbwZfyAqGRo42hCkoHWproWYPAn41sbAiA+2fgx2mWoTlX6ssEo7+U4h2GItw0GELri+umVjFXymw=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.0_1525909842015_0.006833360093839502"},"_hasShrinkwrap":false},"1.6.1":{"name":"cherow","version":"1.6.1","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/umd/cherow.js","module":"dist/es2015/cherow.js","jsnext:main":"dist/es2015/cherow.js","types":"dist/types/cherow.d.ts","typings":"dist/types/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"lint":"cross-env ./node_modules/.bin/nps lint","build":"cross-env ./node_modules/.bin/nps build.default","minify":"cross-env ./node_modules/.bin/nps build.minify","test":"cross-env ./node_modules/.bin/nps test","test:watch":"cross-env ./node_modules/.bin/nps test.watch","coverage":"cross-env ./node_modules/.bin/nps coverage","post_coverage":"cross-env ./node_modules/.bin/nps coverage.post"},"devDependencies":{"@types/mocha":"^2.2.48","@types/node":"^10.0.3","clean-assert":"^2.0.0","coveralls":"^3.0.1","cross-env":"^5.1.4","lerna":"^2.9.0","mocha":"^5.1.1","move-cli":"^1.1.2","nps":"^5.9.0","nps-utils":"^1.5.0","nyc":"^11.7.1","rollup":"^0.58.2","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^3.3.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-typescript2":"^0.13.0","rollup-plugin-uglify":"3.0.0","ts-node":"^6.0.3","tsconfig-paths":"^3.3.1","tslint":"^5.10.0","tslint-microsoft-contrib":"^5.0.3","typescript":"^2.8.3","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"_id":"cherow@1.6.1","_npmVersion":"6.0.0","_nodeVersion":"8.11.1","_npmUser":{"name":"fkleuver","email":"fred@avurad.nl"},"dist":{"integrity":"sha512-qEzS+FaUzQbxXnF+mwiRo7+Qa7DWWoF6V6UPq4elF6zFGShFn5TabGh3PH94g9/pu0bDn0ksbdyFw9kZYmfHyQ==","shasum":"68a687d168c0b782ab70c302df1a465392043be2","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.1.tgz","fileCount":45,"unpackedSize":2838246,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa85K5CRA9TVsSAnZWagAAsF4QAIw9B99dQN/VX5NCoTR6\n7pw2gdjRkGn4kjGzl4k/lX+ksLVVQJDuUefOdKWjtsHo/JazVSWQqgiWlYKQ\nVtlaKF44uSLYMfg4cdFA2om9J6ASPfTZr1AkP+mT3lSNufm1P2w19Sqw9ADR\n9nVX91axA5ayCLJqOZtpnOzrUg52q8bfSopSbc+uMd2Hc9sdhFU3kJhh9uBZ\nPZNInwHdDsUetH4XcufAu0k1ftXKqYm0dCOGeNcZrmfYzEJiiXDvZLI826zD\nmaECZIqKk3o99FTsF69M15TYpahLx73ToEZP1pFt0J4lBqt/l6V1cy6/nT+S\nY39r+9vXTl+UiqF0SrLN/dep3UVy5Y5Bxhs22xuMoc3KHdzMCs1qPnPyLu+M\nAUEVXK9z4PPk6ugMNCtBUBghDyFZnDiPQQ1f/f10+1nHCkwWWrw87f5VfhzI\nZNTA5PLLPp/cSp2hMYS3XwgG34FlVq/GbSB8Yw4vftLKC1V5W+OCCjw1mPDv\niebaR3UA9C1CEF2CKbY5Fap16eVQB3HAWb0wdr+PNdn+mfDMmkxaLd+3LxK8\nvpBahEKFrWCeT5nChJy2gL8yltCCBDASzuVkad66p61tQs2p39Jm8cNCfoiS\nPKCaaahkyiuOPI4Hz9Q/sEVEGfV0+bcNy1VfF1cqD5+y7XbQGsLRULOlFHUg\ntG2a\r\n=0EYx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCnbJtWol4oo55knwgLgjNGsS5snePuqF73goHZq5FnTgIhAP3XZN+z8WBmiYWNDOiUToS7MuKou/g1TNbtOjZszRfI"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.1_1525912248487_0.1131586068141075"},"_hasShrinkwrap":false},"1.6.2":{"name":"cherow","version":"1.6.2","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/umd/cherow.js","module":"dist/es2015/cherow.js","jsnext:main":"dist/es2015/cherow.js","types":"dist/types/cherow.d.ts","typings":"dist/types/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"lint":"cross-env ./node_modules/.bin/nps lint","build":"cross-env ./node_modules/.bin/nps build.default","minify":"cross-env ./node_modules/.bin/nps build.minify","test":"cross-env ./node_modules/.bin/nps test","test:watch":"cross-env ./node_modules/.bin/nps test.watch","coverage":"cross-env ./node_modules/.bin/nps coverage","post_coverage":"cross-env ./node_modules/.bin/nps coverage.post"},"devDependencies":{"@types/mocha":"^2.2.48","@types/node":"^10.0.3","clean-assert":"^2.0.0","coveralls":"^3.0.1","cross-env":"^5.1.4","lerna":"^2.9.0","mocha":"^5.1.1","move-cli":"^1.1.2","nps":"^5.9.0","nps-utils":"^1.5.0","nyc":"^11.7.1","rollup":"^0.58.2","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^3.3.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-typescript2":"^0.13.0","rollup-plugin-uglify":"3.0.0","ts-node":"^6.0.3","tsconfig-paths":"^3.3.1","tslint":"^5.10.0","tslint-microsoft-contrib":"^5.0.3","typescript":"^2.8.3","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{"acorn":"^5.5.3","npm":"^6.0.1","yarn":"^1.6.0"},"_id":"cherow@1.6.2","_npmVersion":"5.6.0","_nodeVersion":"10.0.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-3VJ7XzZI5owqvAtWlbKUDXdwiFrGZRxZFEimWhs46I7Wq3pIdXEQi4NE9CPeng/xgrBA82hnLsYo3hqMWD22AQ==","shasum":"67f385a4232d4c17dd065b1216db874e95f13311","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.2.tgz","fileCount":45,"unpackedSize":2826462,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa+QFfCRA9TVsSAnZWagAArv8P/36jgzNpIjhAT/H9Hptr\nIwvzN1QljxGi/ePpzm1x8PSQMGcIoNLL4axeR3mlJwf2I+UbxEzzdKK8CZGh\nWfkSAQQhMq0do51DZbw5sRkTtowLr7LVfrbAbzIOQgYDXQdhzSXekUNIWeF3\n3eL1Bo6dp1LQOjpeogWDj7tOffAwVlJF2VSAThufmgfg0l6xAZwgrjoePNOO\nfsYCD9MxESWJy+685m5nmuy4tgnxeXqk1pH0pkcXZGqzhBbCS0lognN9Quh5\ntgj9E8M9BhtwK1PT+3C0tejWL03Oljd1/ROONoASUfuMR9G0H+V/VQEZab//\ngAKgGP7/4ZXhcoN3c4ofil0jClR3KPCs2eGpMa2GClVrdV6nL+tU5N+utZyF\nCTLxO+zh+N8Y7XE3vWk0tUSMv+xkSzemfupDmdjBfa/X/IDL/NFqVnziNO5D\niv64KvZZnYM6vwOBYRizT57E4oza5i0EGtFgcL3ZHWOschR3XmgxnYR060nu\n6R1SLgmhkdAhr4dUit3KEnL/W3mCx/7oKYHBxqmSOpjPQ5lu6rudXYYp67cp\ndH1FusZ2BDrp5y+hm546KgUagA0ridlTMNxsuqK5+4lcSs4mjRVEMmw+ex9K\nIBz6pyZZqH1bgCYssT13L6u9+bP3hDGWALWG/Hvf3CwqGFFT9eooifOhM+c/\ntX47\r\n=2PwD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIESeSssYnu3gu4OfRcsJPFf7ilU8/BRMQ2wCtIT0dC2pAiEA30i+u7nzR98E0EUukY8OlG+eHegc8LbWAD0+pwI6d3c="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.2_1526268252838_0.6946332905376102"},"_hasShrinkwrap":false},"1.6.3":{"name":"cherow","version":"1.6.3","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/umd/cherow.js","module":"dist/es2015/cherow.js","jsnext:main":"dist/es2015/cherow.js","types":"dist/types/cherow.d.ts","typings":"dist/types/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"lint":"cross-env ./node_modules/.bin/nps lint","build":"cross-env ./node_modules/.bin/nps build.default","minify":"cross-env ./node_modules/.bin/nps build.minify","test":"cross-env ./node_modules/.bin/nps test","test:watch":"cross-env ./node_modules/.bin/nps test.watch","coverage":"cross-env ./node_modules/.bin/nps coverage","post_coverage":"cross-env ./node_modules/.bin/nps coverage.post"},"devDependencies":{"@types/mocha":"^2.2.48","@types/node":"^10.0.3","clean-assert":"^2.0.0","coveralls":"^3.0.1","cross-env":"^5.1.4","lerna":"^2.9.0","mocha":"^5.1.1","move-cli":"^1.1.2","nps":"^5.9.0","nps-utils":"^1.5.0","nyc":"^11.7.1","rollup":"^0.58.2","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^3.3.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-typescript2":"^0.13.0","rollup-plugin-uglify":"3.0.0","ts-node":"^6.0.3","tsconfig-paths":"^3.3.1","tslint":"^5.10.0","tslint-microsoft-contrib":"^5.0.3","typescript":"^2.8.3","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{"acorn":"^5.5.3","npm":"^6.0.1","yarn":"^1.6.0"},"_id":"cherow@1.6.3","_npmVersion":"5.6.0","_nodeVersion":"10.0.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-/Vt0vrFdQ91Oh/S79UXtgk6Tx5lIRtRS7R2sgs06dO8yGvDz9SsPr+hVQwgVEbY2RPN0pjTWn+3KLQKX81pafw==","shasum":"c22905d48b8ece69f5dfe98f5d4045d89a388fb7","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.3.tgz","fileCount":45,"unpackedSize":2834984,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa+hz8CRA9TVsSAnZWagAAMyAQAI+jpnh21bvN34oi38Vy\nQJfA+hh2AywH4gOdnIIw+KRlRRLT93Y0/g84TkRmcXvBy+QH2QkhSKTWY/hP\nzIWILI8RERay9x745AB3ep/aHdSNS+A1MAvgxQbBDPh5UkHbXU1hWiAlBpyR\nVCx1Wk71CCvfi9BK7jlUy1sTBIruve8TOnOyCVCZeRuaUCrtEhWpPQaksw8S\nHYAu8XXWJNkwVynraMeslUbjbV7QjiDBjraoIu3+2v1kAIMrLuUXsYIddVsF\nb4/9UAB6sMZXr8y+6HzW3hKvEgRjYKfgVLKtV+lU+ookIPmc4c8FVKT8OTG+\n6cq83whLybwvpWkvJemv6EDLz2JVF+j+NSFqhHsWkxqC7i32abN1aBm899Sc\ntBHYo8yr6F8vUQw4817qq0zKfxZ4KWz3+r6C1O3p1c6krJy+St9WFhN6XH2P\nabICj9snWkKKfqj7q7PK0nqItlkhnFSkHfbZ+8g3Gpx+d71z2YSqQPP8ZOIC\nDa/66ytROhAN//76yaGSe7POlQZrdT/Z8Ryth/JvuzZ513rbjlT06gUCwgd4\nWbTualDigiaIPn8ghqkJigHs2FiOl6n9z6GUhyxvCC2NBjfOuvCCX+5WSgkG\nYTWUDhiBBwrUsRq+oGTQYsNy4xsfF27LBqfi8MKg4rxHFXpGvtPa2SAhbv/O\n34DS\r\n=Natc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD44FlG5/w7QPKbA6xetPIMKXu6Mr8Y2OuHUVRwhZtLYAIgVasyXg6GHrAJ7M89qQwiC3U6UmuPB6kZQ0mbLTb8E4A="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.3_1526340859326_0.4470762923581073"},"_hasShrinkwrap":false},"1.6.4":{"name":"cherow","version":"1.6.4","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/umd/cherow.js","module":"dist/es2015/cherow.js","jsnext:main":"dist/es2015/cherow.js","types":"dist/types/cherow.d.ts","typings":"dist/types/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"lint":"cross-env ./node_modules/.bin/nps lint","build":"cross-env ./node_modules/.bin/nps build.default","minify":"cross-env ./node_modules/.bin/nps build.minify","test":"cross-env ./node_modules/.bin/nps test","test:watch":"cross-env ./node_modules/.bin/nps test.watch","coverage":"cross-env ./node_modules/.bin/nps coverage","post_coverage":"cross-env ./node_modules/.bin/nps coverage.post"},"devDependencies":{"@types/mocha":"^2.2.48","@types/node":"^10.0.3","clean-assert":"^2.0.0","coveralls":"^3.0.1","cross-env":"^5.1.4","lerna":"^2.9.0","mocha":"^5.1.1","move-cli":"^1.1.2","nps":"^5.9.0","nps-utils":"^1.5.0","nyc":"^11.7.1","rollup":"^0.58.2","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^3.3.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-typescript2":"^0.13.0","rollup-plugin-uglify":"3.0.0","ts-node":"^6.0.3","tsconfig-paths":"^3.3.1","tslint":"^5.10.0","tslint-microsoft-contrib":"^5.0.3","typescript":"^2.8.3","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"_id":"cherow@1.6.4","_npmVersion":"5.6.0","_nodeVersion":"10.0.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-gRh+30iMh+qc+4s9XcaIu+9oL7aOUFE+7jpdemJPNv8Dc1KoHrOHYbYB6ZTYHSh+jZXZV2UkQFBGvv1u2A7a5A==","shasum":"05472f808a72d41a74c6441dd39b812dc63ab07c","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.4.tgz","fileCount":45,"unpackedSize":2834894,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa+h7DCRA9TVsSAnZWagAAZkoQAJow05q57Qtzb9STNGPo\nX1ddftr3diDuJfQw2v1lNhYKZuhzheJcvQmiSs7WgG6oObk8gSFjqU4x7nBW\ndWshqs9A3Pjee0Cse1Ubwys8hvnga8u4VQSR3HsNIPnad7ayYX87xXlAkbZx\ng2ibDxJgKZF7kN+hV1O8vNQxxmJgJKbSGNlxjJPuPMxD0swJqrCT0BlRJi9l\nFYoHFy9SxCIlOYW+I3o9xPSTxjgzfKJftbrP2yitsVPo+uzOfhUS2e8QO/Fn\nry60A3hCamaHpmPbSUrhpRHy1mwDpQSfkWWad7QZoJb6O+nJoy3iIU7TGFQ3\n+iXT24ntjkEmqRsWTsQlv4jxHubtIiLOp5tmW+wF3RAqpf2j43l9TbWhmrsI\nTwLE/V0hi4YSfjW6K4OE7RmUqo1Xq79/Iti0CebmrXbx1vDzBzz/AhBAh2Fp\n4UzVNfzcoxV8oORHKZhn6DAKcn9ngoTPeDjXmyFJgodGkXCtsliqiPrqMDJU\nIBAgmp5sLQW5hNqy0/zcZboKgJ9lADsz/i+MdYeOF3J+kuZKTBl2DxVYP+7L\nSOuGaYQsty8f7VMNYKFFs/9pt43krA27B7R8DXOadrH4SzbrNfCVu/cMilBI\nf/iZdw2f78B8Wziieybx0vw5EYKAxZi83GOchaQ3jrDZcJ2inL+UPWP/A/ji\nYsAi\r\n=SALA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCncAFD5bDS8V7zMmhd11q/md7PdkM4bJ8iP79YIOoJrAIgNtljE0FOrRz9er/LQqJrmu0z+R91MIj3gqrBnXfy8O4="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.4_1526341314113_0.29093052517500495"},"_hasShrinkwrap":false},"1.6.5":{"name":"cherow","version":"1.6.5","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/umd/cherow.js","module":"dist/es2015/cherow.js","jsnext:main":"dist/es2015/cherow.js","types":"dist/types/cherow.d.ts","typings":"dist/types/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"lint":"cross-env ./node_modules/.bin/nps lint","build":"cross-env ./node_modules/.bin/nps build.default","minify":"cross-env ./node_modules/.bin/nps build.minify","test":"cross-env ./node_modules/.bin/nps test","test:watch":"cross-env ./node_modules/.bin/nps test.watch","coverage":"cross-env ./node_modules/.bin/nps coverage","post_coverage":"cross-env ./node_modules/.bin/nps coverage.post"},"devDependencies":{"@types/mocha":"^2.2.48","@types/node":"^10.0.3","clean-assert":"^2.0.0","coveralls":"^3.0.1","cross-env":"^5.1.4","lerna":"^2.9.0","mocha":"^5.1.1","move-cli":"^1.1.2","nps":"^5.9.0","nps-utils":"^1.5.0","nyc":"^11.7.1","rollup":"^0.58.2","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^3.3.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-typescript2":"^0.13.0","rollup-plugin-uglify":"3.0.0","ts-node":"^6.0.3","tsconfig-paths":"^3.3.1","tslint":"^5.10.0","tslint-microsoft-contrib":"^5.0.3","typescript":"^2.8.3","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"_id":"cherow@1.6.5","_npmVersion":"5.6.0","_nodeVersion":"10.0.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-WlPae6Bq0kjipch6MODpWgjok0NTtJCJRl/lsCcNDKvv/tliVDCVJSGzD8t3ZbXnKrsovnw6SHdiL9mA1OzSzQ==","shasum":"e4f1d21db73a83ad37580e1a56c22c9779f8be60","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.5.tgz","fileCount":45,"unpackedSize":2844926,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa+rlYCRA9TVsSAnZWagAA5tIQAJJB075H0f6noQAmTnw3\nh18Qjv8mmDLaTrM3gafR7OIRFVBw1a7WEPgGKejJispsc7FGekBECizAlpIk\nY3ITl/xy5jc4NYH0NFxglGDmsrq2fG2P3DJEbqDpyGUgyVLiw9S8vRt86FHK\n8qJLe50ZmXq/YffDvkhcjlxX7kb0MS7DrZH+OW73bdLUCjKS48IZ81fRxxPA\n2dhGNQWxvRpb8bQzCA6k7O3R1T+NZXxrClD3ggGwtjFiPunhzAG5Wm8izESE\nLu3wuDSCAM0vz7gD39dUAVHWES+FgCmoeKP8g1VMpVrorlMGT3kPV6Scoxzr\nBhtdF8eaICCU1/RAxoQVdgv/gHKBjkmBQdR9jtvqhHLC6JTWlSAjyEHQrX5D\nMuzgVvl9vG4GnGWcHskvTjkxyI4R0S4IQ+ytb8wQ1XJmq3jD1sQcej7A508+\nP28PylBi9bNw7p1o13g8nTNHkGKoecuaXaugRsgZUxjWUjdIZBWs5Ibg4WPL\nMei4Y+F1zbxTs91ReJjzAA9fUhN6uTpio/gQ7EV/dlCOO7Zd/wsLvqzJETkw\nL0/OvkEmYGrK0gkuYNp0/Pew/A2KludwWZVU1TTaBBDdlx/CfFRu2PlIuGXe\noMe7lr7BPE/ofuiUNrdYoQ8vwMHOzdu4Az47gCgEQFMC+ELEFI8ANx6434m/\neeaC\r\n=CStX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFYKkzwZbALdTvVLIJhP4gfYzkmaQHJ6ntm2I7QliNlZAiBjIo6166xZQucYR+bOhj4KOR3SVkn5l5maqR3j4uPKUA=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.5_1526380886018_0.5100347978728426"},"_hasShrinkwrap":false},"1.6.6":{"name":"cherow","version":"1.6.6","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/umd/cherow.js","module":"dist/es2015/cherow.js","jsnext:main":"dist/es2015/cherow.js","types":"dist/types/cherow.d.ts","typings":"dist/types/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"lint":"cross-env ./node_modules/.bin/nps lint","build":"cross-env ./node_modules/.bin/nps build.default","minify":"cross-env ./node_modules/.bin/nps build.minify","test":"cross-env ./node_modules/.bin/nps test","test:watch":"cross-env ./node_modules/.bin/nps test.watch","coverage":"cross-env ./node_modules/.bin/nps coverage","post_coverage":"cross-env ./node_modules/.bin/nps coverage.post"},"devDependencies":{"@types/mocha":"^2.2.48","@types/node":"^10.0.3","clean-assert":"^2.0.0","coveralls":"^3.0.1","cross-env":"^5.1.4","lerna":"^2.9.0","mocha":"^5.1.1","move-cli":"^1.1.2","nps":"^5.9.0","nps-utils":"^1.5.0","nyc":"^11.7.1","rollup":"^0.58.2","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^3.3.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-typescript2":"^0.13.0","rollup-plugin-uglify":"3.0.0","ts-node":"^6.0.3","tsconfig-paths":"^3.3.1","tslint":"^5.10.0","tslint-microsoft-contrib":"^5.0.3","typescript":"^2.8.3","unicode-10.0.0":"^0.7.5"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"_id":"cherow@1.6.6","_shasum":"dd1e0cf43782f0229b3e00ab201be96716ad81c1","_from":".","_npmVersion":"3.10.9","_nodeVersion":"10.1.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"shasum":"dd1e0cf43782f0229b3e00ab201be96716ad81c1","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.6.tgz","fileCount":45,"unpackedSize":3012228,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbBRmZCRA9TVsSAnZWagAAAtsP/jTC3XK+okisuhQ6G2lb\n5iSATHusO33XrOgHAtqpTsymsLJYH7AP9NuSgf3lSf9wcX2b2+nLwZv3QdZ5\n3A3Mcvtg9jjiMoCX14HFkBGOlEm8MB4qLqAO0TfR0CyROC8/y//+WHi0HueJ\n/ifvByguWbYRrqFfhV/p0lDWOTHGcSkwEl2FsDOmjz3dK2Vp6rGoGxzTQyCA\n2chmbXJb9E9J1Z2/JG2uvdiNCYx8uyk4qquh57jpV2jVidxzLs538PZLbgdT\nYE3jk3UfUlArTRZxeo9HWRNcpwm8CzdwbigIqiEVWC2ziOUmOLd9GuK9luR3\njU/7enUfG2SncVvUKmzDdU4CMnJrtMkx2bj1r3QePPCaSESNi7Txy2p4kueq\nWrE2pUv+ejTvoU5hLlYSNM1Uy/qu9M7oXZ7mQdL9zxMOqCKDH1DCkyNsZ2li\n8tCRgbu9jFzjIDh3mhoxbFARfiTRahpOKBI431NYh2rgdEdtkWBHxj4bIIJ1\n9nTq02BB3Cx7YSd8wv2XbtJDJ9+XcUCQ9kzTq8HtzXYxzsQacAlhzLYtO8Ss\nhkd4f0A1w87UvWr20ngWtG8U6cfTsz6N4Ycaay+DdUdHEmof8L3i3AdziKbR\nhLD+CKNlMxCiy+0+/OaHbvzezMWtDLJfG297FhV92GgGNCqUxbTW9vsifHW8\nQwlQ\r\n=hdUp\r\n-----END PGP SIGNATURE-----\r\n","integrity":"sha512-KXX32ArgWPEMS1clAc+9uB19i+vGPDEj7md8Ihj8KtOleEWxoH3LWnLc77VOubHfTXzIoiKnqENoX4DvgxYT7A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDpvy1rXtW/UJfrryXT0o7WHSGSweJuZkbTfHw6YYiPdQIhANov0ZbzlPN3ZF+V/dNE109QnU93lyiW4f2qrXDXR+WP"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.6_1527060886625_0.18449638882748798"},"_hasShrinkwrap":false},"1.6.7":{"name":"cherow","version":"1.6.7","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/umd/cherow.js","module":"dist/es2015/cherow.js","jsnext:main":"dist/es2015/cherow.js","types":"dist/types/cherow.d.ts","typings":"dist/types/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"lint":"cross-env ./node_modules/.bin/nps lint","build":"cross-env ./node_modules/.bin/nps build.default","minify":"cross-env ./node_modules/.bin/nps build.minify","test":"cross-env ./node_modules/.bin/nps test","test:watch":"cross-env ./node_modules/.bin/nps test.watch","coverage":"cross-env ./node_modules/.bin/nps coverage","post_coverage":"cross-env ./node_modules/.bin/nps coverage.post"},"devDependencies":{"@types/mocha":"^2.2.48","@types/node":"^10.0.3","clean-assert":"^2.0.0","coveralls":"^3.0.1","cross-env":"^5.1.4","lerna":"^2.11.0","mocha":"^5.2.0","move-cli":"^1.1.2","nps":"^5.9.0","nps-utils":"^1.5.0","nyc":"^11.8.0","rollup":"^0.59.2","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^3.3.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-typescript2":"^0.14.0","rollup-plugin-uglify":"4.0.0","ts-node":"^6.1.0","tsconfig-paths":"^3.3.2","tslint":"^5.10.0","tslint-microsoft-contrib":"^5.0.3","typescript":"^2.9.1","unicode-11.0.0":"^0.7.7"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"_id":"cherow@1.6.7","_npmVersion":"6.1.0","_nodeVersion":"10.1.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-Q5rz0jMXtQCgsjYLdJTytvaBXb2coDiGFRc/Oe/RvFhbA3LyJwiaa33fhvQJabZwxJvZ7R5lyJuMRav3NvABjQ==","shasum":"f2664202bfb61ab9a77f813adeb43f6482874582","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.7.tgz","fileCount":38,"unpackedSize":2272267,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbGvJFCRA9TVsSAnZWagAAERIP/jV4jNkEOOSIi8kXwHnC\nA2EyShsL9et6ctEUVwq92EY8t87+0f4lx4rgsq2KnP3r3af9HRCTOwBkR1m3\na6/qS8Q5OlGzfCoOEJPVfY3MilNFUjh/ecwRBhgCiH4KduMo43zwh+laSwpG\nJyWxm5+LG5htkMTJqPICdqI2ILYzRmMQu/aMZhpDwUu3+mXUB9gbrdYHx46I\n2hALXGTrZOHRV+tzfXZTeATlo922M0uodfN6HAIteVqB7Wkt8n/LvOLzf1j+\n6TdpeSMKdOPm8ZJ5cjj3mSAxcGL2FLhTG1mNspE5iF3VGvbPxZNOPwEGfVfn\ngunW41hfKTo0sj0lzgP25NNij/Csiy3kaxcXkGFD/Hy7ydTlq63GG+ZLx/fR\nKwGZs8IWu/95hWYgz9Fegdp5KSbHCq9AwLvshX0x2JGIInOsH1+YMu7C+2Bc\nr2JVBRMZ+7dOg73//NCd6/5t5PHeqEmmGQlE0hFilayyWJsgnSaDh5HN7+Y5\nCLv8ZHrXqVzcaAxgXF5/oey6gfG6vOfP6GxLo8N5dcwXajA8ijL9mZ/TVnGR\nvk891LJWmgojVTntuxXnheiKqHidWqVZ7RRo27bYde6FIkUzNfp69kJouW6j\nkzTpjK/e4/EjpkP+Z5tOmT3d14cA9o9ByG2gRYOTv4aPeOCxMVTRMqZk7xpL\nhruK\r\n=7Zjj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDeIMGlz/ZWuCRNRmXodABpmO5YG2cPA2FIhLi1MvCYYwIhAKa/70NyUJpdc4O0Em1YNkRJpCfXsTiWrQXHkL1LNsoS"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.7_1528492610760_0.8343997380974428"},"_hasShrinkwrap":false},"1.6.8":{"name":"cherow","version":"1.6.8","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/umd/cherow.js","module":"dist/es2015/cherow.js","jsnext:main":"dist/es2015/cherow.js","types":"dist/types/cherow.d.ts","typings":"dist/types/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"files":["dist","CODE_OF_CONDUCT.md","CONTRIBUTING.md","README.md","LICENSE.md"],"scripts":{"lint":"cross-env ./node_modules/.bin/nps lint","build":"cross-env ./node_modules/.bin/nps build.default","minify":"cross-env ./node_modules/.bin/nps build.minify","test":"cross-env ./node_modules/.bin/nps test","test:watch":"cross-env ./node_modules/.bin/nps test.watch","coverage":"cross-env ./node_modules/.bin/nps coverage","post_coverage":"cross-env ./node_modules/.bin/nps coverage.post"},"devDependencies":{"@types/mocha":"^5.2.1","@types/node":"^10.3.2","clean-assert":"^2.0.0","coveralls":"^3.0.1","cross-env":"^5.1.6","lerna":"^2.11.0","mocha":"^5.2.0","move-cli":"^1.1.2","nps":"^5.9.0","nps-utils":"^1.5.0","nyc":"^11.8.0","rollup":"^0.60.1","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^3.3.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-typescript2":"^0.14.0","ts-node":"^6.1.0","tsconfig-paths":"^3.3.2","tslint":"^5.10.0","tslint-microsoft-contrib":"^5.0.3","typescript":"^2.9.1","unicode-11.0.0":"^0.7.7"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{"rollup-plugin-uglify":"^3.0.0"},"_id":"cherow@1.6.8","_npmVersion":"6.1.0","_nodeVersion":"10.1.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-if2GIw3fjE/KnFD5tddg4YJn2zveJ7PU7VcTrVHvsAdqJClB5555AsSti53XHjUyaOEiqq9x3/lZZVJ8s+VPkA==","shasum":"55a27e4062cfcfbe0400d40a1f9d1f5f3c160bb2","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8.tgz","fileCount":45,"unpackedSize":3017147,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbGvT5CRA9TVsSAnZWagAAClAP/0PTDlldvE8fOR3A8cRD\nIbYE3q/LBfDXeUuMiqlE+lUS/luKhFY392jBQ4O4FVrTCogaKpOewuWzeYfW\nhWtoAkK8LTmbTs3xkcuuylAme7tyTQUhCTIsDeuUnm1gvjpgMk0dgvjUzKHx\nj8+Ywa4SIkxBKoyzRKT7wt+PLtFoSLve4KLfY7RGAxGz4fEpNqx0qeu27uOu\noud/HlxQ+blYKXjkpiqRHNRwB6NuFVpBWbUWL1UjlEyP+7hbDCIaHK3KNf1B\nWUYpIvbC9JsUSywbfbQEwjY6rjoD/WHjijE0uOdDl+P/RsTqLop2ngZJDvXl\n/6RK+Z1hfy0NfnQIxEeyk7673AqXrEtwnf8MSjufhgmhm0vnf8/QmTNRZIF6\nEgTMkgQD76YaS6qtVBx41z2eZKGYkCLvNkjI+idFF4axKvIAz13qUDpUf3We\nzXBdxpMmgVlfsoHHdkeGg8ECur6SaqjDGlGkMmnxV4bGZyo/LmAbyrV0LpT9\nZjPbyDRPehui2XXeAXlhk3IGELQvLn4sJQiDwcfMqPiYHp2ZpOAHHZAUCf/V\nh8gkaNY9n/EaQdPrK/KqOz0TX6afUQo5ATaEUvgWI6Qw3uvqG7EGs04/yJtL\nfUnMzKW2hwxWFXyi4FHYHurBZyqvyAZPhs2fLV+XYp/jrX7Fr5wLsdLyGQVc\n7Jiy\r\n=WSsQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCxlY09NCLBKpp88ZPAWMBqoQcVdEXuA7DvSpl10J4KgAIhAK50BHBaDXQxQEgiy8f4B7jBe0xs93FVaIWarCzCvJAy"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8_1528493304082_0.7339139177318068"},"_hasShrinkwrap":false},"1.6.9":{"name":"cherow","version":"1.6.9","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/umd/cherow.js","module":"dist/es2015/cherow.js","jsnext:main":"dist/es2015/cherow.js","types":"dist/types/cherow.d.ts","typings":"dist/types/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"scripts":{"lint":"cross-env ./node_modules/.bin/nps lint","build":"cross-env ./node_modules/.bin/nps build.default","minify":"cross-env ./node_modules/.bin/nps build.minify","test":"cross-env ./node_modules/.bin/nps test","test:watch":"cross-env ./node_modules/.bin/nps test.watch","coverage":"cross-env ./node_modules/.bin/nps coverage","post_coverage":"cross-env ./node_modules/.bin/nps coverage.post"},"devDependencies":{"@types/mocha":"^5.2.1","@types/node":"^10.3.2","clean-assert":"^2.0.0","coveralls":"^3.0.1","cross-env":"^5.1.6","lerna":"^2.11.0","mocha":"^5.2.0","move-cli":"^1.1.2","nps":"^5.9.0","nps-utils":"^1.5.0","nyc":"^11.8.0","rollup":"^0.60.1","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^3.3.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-typescript2":"^0.14.0","rollup-plugin-uglify":"^3.0.0","ts-node":"^6.1.0","tsconfig-paths":"^3.3.2","tslint":"^5.10.0","tslint-microsoft-contrib":"^5.0.3","typescript":"^2.9.1","unicode-11.0.0":"^0.7.7"},"nyc":{"reporter":["lcov","text"],"exclude":["build/test/**/*.*"]},"dependencies":{},"_id":"cherow@1.6.9","_npmVersion":"6.4.1","_nodeVersion":"10.13.0","_npmUser":{"name":"fkleuver","email":"fred@avurad.nl"},"dist":{"integrity":"sha512-pmmkpIQRcnDA7EawKcg9+ncSZNTYfXqDx+K3oqqYvpZlqVBChjTomTfw+hePnkqYR3Y013818c0R1Q5P/7PGrQ==","shasum":"7c5e34fce297f152a6f7853dcc9fe2f9e1b36ab8","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.9.tgz","fileCount":45,"unpackedSize":3014913,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcGZ9bCRA9TVsSAnZWagAAzd0P/0LWU502CzYdVuR+BY7S\nZhTJjzRJbjcI4//8vhNXzGn2v+zi3VaAHJaAUNvLb63vFSP1ZFQOf/30yiRb\n/IPy2J10Sm9Y+SwvBBqox2b7sjxTkuEuzqe4k96jhkL4LNBmLDu4H0V4W01U\nw+J75Dmj83QcWa50gziQbObyahF2nbL3iHYoHwp5aNML2/2VyV9TMY0Q/AdB\nCFbq2ChRIR2UB8GIz4KW6iQ5nmOjbnRU32FDhT1WyB+XUlULWlJmPbqJhlyn\nzCvv65ZWSaA+D0ivYyjPqWx6EmOzsK2tT9GiqP6ojfFcKbV21ovorgwSVukB\n+8+D+TUEmODMu/LVxiV0VMtameWpEHOKHSzmatFEADz3SlYo+xWxkgEXL/L6\naxAi8O5P1KNQs4QMg9hRIFBRuNoz6ob8jpAMEiHJJwwRNHWXU/WjmQBj1a27\nhQijSUR3iEGLO4FioTiC5XjosQLKv9sjOoHvRitcGPyFIcd5IEqObWqGt9z8\n+5cZMCBruGatbd4KPyZdTPF798YGGPCK9J5iLSNoQGEGPwa2GwGJyLiBjKVh\ns+JI1EqYcS0eR7AxmgvBX91lz1zttjvmVOuaxyntihnSqFkVGry0aoBaU9sR\nPRihmPAR7qv2whMZVUaQp7csbzwb6XZMxo7XoiHonjXpgmd3Zy5unMHxbPBq\nkdSP\r\n=xcfa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID0SPvMz0qXxwrEGF6NWb9nHxUmRlfjogCqnAMinpYg6AiAR3Kqgq9aCDMwr2gitQF3a7UqA8Oy7x8j3Hq3katNq4g=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.9_1545183066640_0.20600483729987684"},"_hasShrinkwrap":false},"1.6.8-dev.20190105":{"name":"cherow","version":"1.6.8-dev.20190105","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha test/**/*.ts -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n src/**/*.ts -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.2.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.2","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^3.0.0","rollup-plugin-typescript2":"^0.18.1","rollup":"^0.68.2","source-map-support":"^0.5.9","test262-parser":"^2.0.7","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint-microsoft-contrib":"^6.0.0","tslint":"^5.12.0","typescript":"^3.2.2","unexpected":"^10.40.0","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support for all stage 3 proposals via option.\n* JSX support via option.\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Modular\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~46 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~70 KB minified (*18 kb smaller than Acorn*)\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Class field declarations for JavaScript](https://github.com/tc39/proposal-class-fields)\n* ~~[Numeric Separators](https://github.com/tc39/proposal-numeric-separator)~~ (removed in 2.0, since it was back down to stage 2)\n* [Private methods and getter/setters for JavaScript classes](https://github.com/tc39/proposal-private-methods)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## Experimental features\n\nExperimental features support as in `NodeJS`. These need to be enabled with the `experimental` option.\n\n* [Decorators](https://github.com/tc39/proposal-decorators)\n* [Do-expressions](https://github.com/tc39/proposal-do-expressions)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('x = async() => { for await (x of xs); }');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `loc`             | Attach line/column location information to each node |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `skipShebang`     | Allow to skip shebang - '#' |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `jsx`             | Enable React JSX parsing  |\n| `tolerant`        | Create a top-level error array containing all \"skipped\" errors |\n| `source`          | Set to true to record the source file in every node's `loc` object when the `loc option` is set.  |\n| `experimental`    | Enable experimental features\n| `raw`             | Attach raw property to each literal node    |\n| `rawIdentifier`   | Attach raw property to each identifier node    |\n| `node`            | Allow to bypass scoping when run in a NodejS environment |\n\n## Builds\n\nCherow contains 3 different builds:\n\n| Name        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `Stable`    | Stable release |\n| `Next`      | Has the `next` option enabled by default, and support all latest ECMAScript proposals. |\n| `Bleeding`  | The active development branch. You can and will expect bugs with this branch because it's not stable |\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is highly coupled to Babel, and is comparatively very slow and buggy, and failing to correctly handle even stable ECMAScript standard features.\n\nNone of these parsers would fare any chance against the official Test262 suite, and most fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n## Benchmark\n\n\n![](./media/benchmark.png)\n","readmeFilename":"README.md","gitHead":"f1aedccd544c7e5b1bcdca14e14fa263d11a1b33","_id":"cherow@1.6.8-dev.20190105","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-XOi3LVHlEx29IkaGblieCql4E02xWOi9JP+ZoLhwtlE/1LfCbqD7vMeqPO1GmUPvOPe34CbUYN7DCMf4xQEZGg==","shasum":"da7b331df72d8f20b938060e804e9dcb194de09e","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190105.tgz","fileCount":37,"unpackedSize":304412,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcMAXhCRA9TVsSAnZWagAA8gEP+QFYosyRpKR0hNfhbg3m\n3kMpl2soBd5NLvbyW6FR73pWsn9YNl79S3RbgWUpFaUkAfbH0KvBLsvkI1/r\nOcMQJyqFwa9nyP5pCWvgKULqwFDbblTO70plUgSqSl49V5smr0RQuXCcRSAG\nbp1wHeMR3Zu5Ou7KF0dh7CXY4LxcALCuW64et3C8LBG/2/MxC0JJjZy6+Av6\neX0fFaw+Jv67TFpclpGJrObOnE4wqkhsGLFtGw5SPX7VSQwYbksH2WDvYRDZ\nRp4/3MxLGVp3mvukyXk6DfvCLRc8+sfgsxxrD1aENUHKFU8rJumYVTTf0uJ0\nrNW74ARJlFbRR9TSqrCkbwwus2JrXcyRrgHcaEVAMOhCcimZ5VteqG4y0XpG\nnsRKaM/rX3cQ8UUr/ChR2L3i0PxPw4yvCB46SwjWKVu/2h14iP3gn+zOsGwg\nJcKST7RfldwtVM9guaRKQhAKXN8JH/+7fgFNrd8zhIcc0kxrLnPEedMRstNH\nUpVVYDDJO7YjN1Ps6lsVDUFtbRrf5iyDRMA28EVOEyhBQN1mEZsL6sdoMTWq\nRZ6bGkylGDRaz2+bCPnjMWd0P6TtfhzR54W7ZUC+6d9rJsOMi1k2fE5qGzfd\nku4LggDb4oyeZ+52oG16jICcW73cPUZaccC24bFdnq9lywP4oZLo7pyaraZP\nSzTg\r\n=kUxN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCbzL8YHrFkqdb0moUWXgrL1e/j+dOB2dXqQrMvo0xnKwIgbeeB5/bj5Wy90mnzsCePREsNeEokv6IEbCNVol8To5I="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190105_1546651105216_0.5941518062229527"},"_hasShrinkwrap":false},"1.6.8-dev.20190106":{"name":"cherow","version":"1.6.8-dev.20190106","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha test/**/*.ts -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n src/**/*.ts -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.2.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.2","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^3.0.0","rollup-plugin-typescript2":"^0.18.1","rollup":"^0.68.2","source-map-support":"^0.5.9","test262-parser":"^2.0.7","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint-microsoft-contrib":"^6.0.0","tslint":"^5.12.0","typescript":"^3.2.2","unexpected":"^10.40.0","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support for all stage 3 proposals via option.\n* JSX support via option.\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Modular\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~46 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~70 KB minified (*18 kb smaller than Acorn*)\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Class field declarations for JavaScript](https://github.com/tc39/proposal-class-fields)\n* ~~[Numeric Separators](https://github.com/tc39/proposal-numeric-separator)~~ (removed in 2.0, since it was back down to stage 2)\n* [Private methods and getter/setters for JavaScript classes](https://github.com/tc39/proposal-private-methods)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## Experimental features\n\nExperimental features support as in `NodeJS`. These need to be enabled with the `experimental` option.\n\n* [Decorators](https://github.com/tc39/proposal-decorators)\n* [Do-expressions](https://github.com/tc39/proposal-do-expressions)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('x = async() => { for await (x of xs); }');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `loc`             | Attach line/column location information to each node |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `skipShebang`     | Allow to skip shebang - '#' |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `jsx`             | Enable React JSX parsing  |\n| `tolerant`        | Create a top-level error array containing all \"skipped\" errors |\n| `source`          | Set to true to record the source file in every node's `loc` object when the `loc option` is set.  |\n| `experimental`    | Enable experimental features\n| `raw`             | Attach raw property to each literal node    |\n| `rawIdentifier`   | Attach raw property to each identifier node    |\n| `node`            | Allow to bypass scoping when run in a NodejS environment |\n\n## Builds\n\nCherow contains 3 different builds:\n\n| Name        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `Stable`    | Stable release |\n| `Next`      | Has the `next` option enabled by default, and support all latest ECMAScript proposals. |\n| `Bleeding`  | The active development branch. You can and will expect bugs with this branch because it's not stable |\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is highly coupled to Babel, and is comparatively very slow and buggy, and failing to correctly handle even stable ECMAScript standard features.\n\nNone of these parsers would fare any chance against the official Test262 suite, and most fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n## Benchmark\n\n\n![](./media/benchmark.png)\n","readmeFilename":"README.md","gitHead":"1de2079dace7588d091864643f4a93e40fb8453f","_id":"cherow@1.6.8-dev.20190106","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-pF05yoS9Zgv9LB86bMUyRHazVi94WYWaufYGPO05dytOgik01pMoE+vEl2GriElAeOcg4cH5y9OYKpfVP2rnOg==","shasum":"e201abc888be3f0512523dd98e9a856060e8c54a","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190106.tgz","fileCount":115,"unpackedSize":1971935,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcMUbSCRA9TVsSAnZWagAAtU8P/RFXbxCxXOxungIqzWYO\nVM7zyj10xLna4ZwBaynjqaBjwTPfNG6jWHeVqTkRXWvU8J3kJNFBBz8pq4cc\nfkZe5OgK9O/yFITZuPKQx5Bm6m3fiPt/sAyvgQw1LSKgg13Zb3YnP5stxqov\n5flQU0Q5V/6CzvVFH1kUa4RhRQGidijDzEfLXw42k0k7d6FE7e/9FZ8EdCoq\nJakjLRsHtGhcamQbrChUJw0Fw91SyZr0aW7ptHRf7fBOvsRlOGU7aWUwVztF\ntCx0sEDtnPxJniZUgZKz6yskMIlQ6f9eijJVLVacQ3lsjuCvK2HNk1Ho414h\n3I8Q+exSZo2+rD3t81getLYRPOTMOgPL07rRzM4izQNCgwYUW4T4410la7Ui\ncSGfDkEJtsLmsQT/0X8dzMkWRflaZtLgE+cqhgAhNSnDORHap6DlB+4/wNFj\nK/SXo/sWW9ei5IBlS7tCSwn3JPI2JjICc7jIW6a8xSgvQL7DQE/Qlv41EB8G\nLT1JovUaqcv8N2IuYRMVuFbqihRawt6MPlSTuzPiaygoOm/4pH8jXC+DMAdy\n2/JhtvaPRUqwMAa/1pyt70H1XhYRlPS+VBeodZnR0EXC62L620uQrCB3/m8M\n2dL7uC1F1SerO5zRJPrb0cRHZmIlbBK/fltdi5W7UBBsgqyVcJCg/36jOv3r\nYrsl\r\n=uZ1f\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDk8223PeWwX0v2BqRYT9s+6ole4NGVa9dLaXTBAiRrhAiBbzAKADcJoaFH6o1UCbsZ8UQ2GAY7iIcg1/z0APMWIcQ=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190106_1546733265980_0.3242738688436928"},"_hasShrinkwrap":false},"1.6.8-dev.20190107":{"name":"cherow","version":"1.6.8-dev.20190107","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha test/**/*.ts -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n src/**/*.ts -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.2.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.2","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^3.0.0","rollup-plugin-typescript2":"^0.18.1","rollup":"^0.68.2","source-map-support":"^0.5.9","test262-parser":"^2.0.7","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint-microsoft-contrib":"^6.0.0","tslint":"^5.12.0","typescript":"^3.2.2","unexpected":"^10.40.0","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support for all stage 3 proposals via option.\n* JSX support via option.\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Modular\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~46 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~70 KB minified (*18 kb smaller than Acorn*)\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Class field declarations for JavaScript](https://github.com/tc39/proposal-class-fields)\n* ~~[Numeric Separators](https://github.com/tc39/proposal-numeric-separator)~~ (removed in 2.0, since it was back down to stage 2)\n* [Private methods and getter/setters for JavaScript classes](https://github.com/tc39/proposal-private-methods)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## Experimental features\n\nExperimental features support as in `NodeJS`. These need to be enabled with the `experimental` option.\n\n* [Decorators](https://github.com/tc39/proposal-decorators)\n* [Do-expressions](https://github.com/tc39/proposal-do-expressions)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('x = async() => { for await (x of xs); }');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `loc`             | Attach line/column location information to each node |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `skipShebang`     | Allow to skip shebang - '#' |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `jsx`             | Enable React JSX parsing  |\n| `tolerant`        | Create a top-level error array containing all \"skipped\" errors |\n| `source`          | Set to true to record the source file in every node's `loc` object when the `loc option` is set.  |\n| `experimental`    | Enable experimental features\n| `raw`             | Attach raw property to each literal node    |\n| `rawIdentifier`   | Attach raw property to each identifier node    |\n| `node`            | Allow to bypass scoping when run in a NodejS environment |\n\n## Builds\n\nCherow contains 3 different builds:\n\n| Name        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `Stable`    | Stable release |\n| `Next`      | Has the `next` option enabled by default, and support all latest ECMAScript proposals. |\n| `Bleeding`  | The active development branch. You can and will expect bugs with this branch because it's not stable |\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is highly coupled to Babel, and is comparatively very slow and buggy, and failing to correctly handle even stable ECMAScript standard features.\n\nNone of these parsers would fare any chance against the official Test262 suite, and most fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n## Benchmark\n\n\n![](./media/benchmark.png)\n","readmeFilename":"README.md","gitHead":"0d57e242ee4cbf03fa0adfe0710cfba04215bb03","_id":"cherow@1.6.8-dev.20190107","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-fQon4m2x3Tg9VzrT19y9F54ANIRrAoksBEucJhpmMSY/xZVtYB24bGsSlorVjeUgL8E9GhYZcY3VM0fHZvmysg==","shasum":"265b1013c1db6187b8f66339d9c8aedcb866ab1c","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190107.tgz","fileCount":115,"unpackedSize":1971935,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcMpePCRA9TVsSAnZWagAApFEP/0+M8lakhYhsNgVponSI\nKIUfFVBM4wwbpPKERqovmOgH5aZ67zgBbQ+GhpGJKPF7loStHt+J9HtdMMa0\ndO3MfzMqTmbSn57EF0ifeooWNqhSN3ZpPsRVW1v0p4O8jDFbYL81/hkluNtd\nwQ2CUK6sjp6ueyHW9/bVDHwgbU4kpckKAAH9z+i/dTnyyGehFVxekpWV5r6P\nd4VvZBxSAIWRC3hvhbn0+CNEIc+M1+3jMwCZs40E3Yjq/SlSnqtK17UCg1X+\nFLj1d/5vBNKnh6gihOMK8EgSgXwXEuO7N/BcDC0l2etAJ+47yYnH73TTc2AJ\n1BUHkW4X1u2sfEaNcYJSdmGWld+UxBhYA3DG2J1c5u0aL/85kpPyWtxvJS1w\nRvWTNbHB26YP3S7lpIzm3TuUqUJqqavlk+N3RfVVHH3MXJR06/lRJeR61ejZ\nXwRHhXCbo27MvDY1q+oV8xjkuaKvkbja3njzbiB+bmMrIXa9chHoxcORrYgY\nqW/AyARsNT6bAnRgbUJLecdznGUnO8zP0GAJpruT7gQP+0XYbq2z5bGZnPnT\n3oZO3c2LitnJkfPJtN78c0CLS5cLp32MLBtD5LwGPQFXOGqgSR+JSEXu95RI\nD3d352GnV7D3FnBMfOVEtkPNCK3Trurjggz/r8uB1s4O9S7B4l/Wp93Dtihp\nrOtv\r\n=ZvsO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIArSR5iVqiThm8djhP1uHSwxv0O1aMKJ6rI82cvWT7SPAiAyMi1IAjoPUrvvkdboStsd/D8+4H0AhDdMstO66WpmJQ=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190107_1546819470526_0.5164794314340857"},"_hasShrinkwrap":false},"1.6.8-dev.20190108":{"name":"cherow","version":"1.6.8-dev.20190108","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha test/**/*.ts -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n src/**/*.ts -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.2.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.2","rollup":"^1.0.2","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.1","rollup-plugin-typescript2":"^0.18.1","source-map-support":"^0.5.9","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.0","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.0","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support for all stage 3 proposals via option.\n* JSX support via option.\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Modular\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~46 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~70 KB minified (*18 kb smaller than Acorn*)\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Class field declarations for JavaScript](https://github.com/tc39/proposal-class-fields)\n* ~~[Numeric Separators](https://github.com/tc39/proposal-numeric-separator)~~ (removed in 2.0, since it was back down to stage 2)\n* [Private methods and getter/setters for JavaScript classes](https://github.com/tc39/proposal-private-methods)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## Experimental features\n\nExperimental features support as in `NodeJS`. These need to be enabled with the `experimental` option.\n\n* [Decorators](https://github.com/tc39/proposal-decorators)\n* [Do-expressions](https://github.com/tc39/proposal-do-expressions)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('x = async() => { for await (x of xs); }');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `loc`             | Attach line/column location information to each node |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `skipShebang`     | Allow to skip shebang - '#' |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `jsx`             | Enable React JSX parsing  |\n| `tolerant`        | Create a top-level error array containing all \"skipped\" errors |\n| `source`          | Set to true to record the source file in every node's `loc` object when the `loc option` is set.  |\n| `experimental`    | Enable experimental features\n| `raw`             | Attach raw property to each literal node    |\n| `rawIdentifier`   | Attach raw property to each identifier node    |\n| `node`            | Allow to bypass scoping when run in a NodejS environment |\n\n## Builds\n\nCherow contains 3 different builds:\n\n| Name        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `Stable`    | Stable release |\n| `Next`      | Has the `next` option enabled by default, and support all latest ECMAScript proposals. |\n| `Bleeding`  | The active development branch. You can and will expect bugs with this branch because it's not stable |\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is highly coupled to Babel, and is comparatively very slow and buggy, and failing to correctly handle even stable ECMAScript standard features.\n\nNone of these parsers would fare any chance against the official Test262 suite, and most fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n## Benchmark\n\n\n![](./media/benchmark.png)\n","readmeFilename":"README.md","gitHead":"76304a017e580c482d164e55edb018553db798b0","_id":"cherow@1.6.8-dev.20190108","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-M0ee30tx4Gyt5+qdtBIetWhZUmub5Ya3E/wnZ6Z23XQkuD/bfqyLDl+4FeE82nez8t7cs1vyo7jPk9eri1W4KQ==","shasum":"5d193fb9cd3b5014af67b82e8fc69a12fd2ff585","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190108.tgz","fileCount":115,"unpackedSize":1954899,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcM+kACRA9TVsSAnZWagAA5o4P/RgLfdFduJc4xSlHG7N8\ngiMn7bGXJmU3AzXpTM/rtXYQn7FSTo+Y6oIu1gW90AuOiWCkzsN+NTnLZS6C\n4j2US0AE0UfP9TnohaFdvloRDINwRXleSiaYoIGYpkuV0wNvTmLNQMl85rcp\nK185PoNTPWlrG90ohpWbbMHJqnoWoNFFTI3oTnFYZ6PivcAJR6s7cTHv8G/9\ni152aRETUyE8BatcwJ9ZSnGlLwTeKsb47wmYoIYOBsbitot2Lv1aFTAaZtGB\nobAKuaKnQU1P+irJfSnoLb89+gLvfLDTXxCKViyIlQzIrtccoszdbhlgVSyd\nLH4Akw0pq5ZC9lx43j5hQuWPRiOYIVX8nAj4dg5qkoeTifo6S+e/EuTFcDEB\nN5Pn7jfqOAao0kgeZMLnVWWnV/yHlE5ZsZf4a7gxkHtBPHcFYbiGrMrKtVlk\n96+zZk1AnhvfAFfvsPTAcEBDs4RWpS7j/6gTr3Q2LXfbZcz/I4S6GckLlJpI\nJnI9sqMT0oR5ZEiU/u6S/Biunws7I/kSu72MxQUIHGiNNbj8inS1GHEMOFdg\nN9fA1jwx6GTodRBU/TTypbgr8NU4/maUS2dOYolp62DnBGS17f3fOuM7w8ZL\nembXdpovkmqydpuSbvxp3zgcrTtKl2F05w4j4rkMP46nWVJDMqyTM6LRRneH\naSs8\r\n=GsZ0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICyenoBNSRERZlDw2RvmSs5P0YDpy4+7llJeyCyPabNLAiEAma3dfsB+OnpcbWmMRq03hTIPzF96aqX1Q1P2oq2la7U="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190108_1546905856003_0.386741928629436"},"_hasShrinkwrap":false},"1.6.8-dev.20190109":{"name":"cherow","version":"1.6.8-dev.20190109","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha test/**/*.ts -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n src/**/*.ts -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.2.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.2","rollup":"^1.0.2","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.1","rollup-plugin-typescript2":"^0.18.1","source-map-support":"^0.5.9","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.0","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.0","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support for all stage 3 proposals via option.\n* JSX support via option.\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Modular\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~46 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~70 KB minified (*18 kb smaller than Acorn*)\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Class field declarations for JavaScript](https://github.com/tc39/proposal-class-fields)\n* ~~[Numeric Separators](https://github.com/tc39/proposal-numeric-separator)~~ (removed in 2.0, since it was back down to stage 2)\n* [Private methods and getter/setters for JavaScript classes](https://github.com/tc39/proposal-private-methods)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## Experimental features\n\nExperimental features support as in `NodeJS`. These need to be enabled with the `experimental` option.\n\n* [Decorators](https://github.com/tc39/proposal-decorators)\n* [Do-expressions](https://github.com/tc39/proposal-do-expressions)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('x = async() => { for await (x of xs); }');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `loc`             | Attach line/column location information to each node |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `skipShebang`     | Allow to skip shebang - '#' |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `jsx`             | Enable React JSX parsing  |\n| `tolerant`        | Create a top-level error array containing all \"skipped\" errors |\n| `source`          | Set to true to record the source file in every node's `loc` object when the `loc option` is set.  |\n| `experimental`    | Enable experimental features\n| `raw`             | Attach raw property to each literal node    |\n| `rawIdentifier`   | Attach raw property to each identifier node    |\n| `node`            | Allow to bypass scoping when run in a NodejS environment |\n\n## Builds\n\nCherow contains 3 different builds:\n\n| Name        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `Stable`    | Stable release |\n| `Next`      | Has the `next` option enabled by default, and support all latest ECMAScript proposals. |\n| `Bleeding`  | The active development branch. You can and will expect bugs with this branch because it's not stable |\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is highly coupled to Babel, and is comparatively very slow and buggy, and failing to correctly handle even stable ECMAScript standard features.\n\nNone of these parsers would fare any chance against the official Test262 suite, and most fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n## Benchmark\n\n\n![](./media/benchmark.png)\n","readmeFilename":"README.md","gitHead":"d72bfb6ccb6867a0c02491cbd80fb33fcfc20623","_id":"cherow@1.6.8-dev.20190109","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-TDJ20WlImasP+LEsoRvlsVppJ9a1AV44/TLAv/JebDZy9qtzKpHTyW/K7mTBq22AhlE7ivT2bxAapxN0RSuBvQ==","shasum":"74b06ef6512868813391266f0c3f8f5eef978be8","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190109.tgz","fileCount":115,"unpackedSize":1954899,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcNTrjCRA9TVsSAnZWagAA/8AP/1PS9RRk2+47ZlAr/snl\n7FO5RwAThFLHKUougkApL5jZLyaAJz75SqTqRTKBRxrTehImFDZ+2ee6K3n1\nmzY35zasUrMUTGLY6Oibai4gtgIN1tJrb7cO+rzlCdNK4acCNDIdE0kbN9Ee\nn4+s9D8s0fkxdtouiHvPVoRFyjvaMJuhn9Uwe7vOBT5a2ncwg756rRMWXv0U\nlzA0i8qqL/NvzdvE6+nNT2Is9j69KI3M4Dg2szPJG6WaDmim1nY1tFhadeU+\nAK3c6roir6w9Zmt5UXaH9SfeV+BfmkC7HX0Ll4qacGSw5e1zfVHW6qql0Gc6\nIr3hdq0FSEh5rfXzCZPH5XWui4rJCc4sU7k4AsfOCx0/OZM1gbnV0feH5EzG\n/B2zU84Ol58O+4+t5iPiY9TjUHYBV9hk1GuL73vXM9Yc+MVQAUhGZW3dPZ9b\nj5S9ce8zK3z43vsE7s2Rh/uRPMa7UNrMLOviNuD1fncixXtiJLpuod8KtD/P\nSsnW3qxdXSNQdISNI5YzAK0HgSFGffzACDdM2TPYpmSGt6DgvwM01UBzbZ5v\nJ5HvYyf6C8w1heViJz8s/+75GxeR78iX8wkuXVgp6TgA55f88z3IaNVYgfO6\nOuvZDQarF241+KCaH8Nv22DbHRiAASHqxzWEhSW8n7sXtgYrmDTw9MfavieU\nH6B7\r\n=CcRk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF7wpqmdiuNaKLNSOnnYko9oGRK+TnS50SeM5F4toagQAiAxDp2projybFCJE+7My1ZA9STb+0ROtxH/s+K9/5Xagw=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190109_1546992354579_0.6544382880594983"},"_hasShrinkwrap":false},"1.6.8-dev.20190110":{"name":"cherow","version":"1.6.8-dev.20190110","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha test/**/*.ts -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n src/**/*.ts -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.2.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.2","rollup":"^1.0.2","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.1","rollup-plugin-typescript2":"^0.18.1","source-map-support":"^0.5.9","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.0","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.0","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support for all stage 3 proposals via option.\n* JSX support via option.\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Modular\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~46 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~70 KB minified (*18 kb smaller than Acorn*)\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Class field declarations for JavaScript](https://github.com/tc39/proposal-class-fields)\n* ~~[Numeric Separators](https://github.com/tc39/proposal-numeric-separator)~~ (removed in 2.0, since it was back down to stage 2)\n* [Private methods and getter/setters for JavaScript classes](https://github.com/tc39/proposal-private-methods)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## Experimental features\n\nExperimental features support as in `NodeJS`. These need to be enabled with the `experimental` option.\n\n* [Decorators](https://github.com/tc39/proposal-decorators)\n* [Do-expressions](https://github.com/tc39/proposal-do-expressions)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('x = async() => { for await (x of xs); }');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `loc`             | Attach line/column location information to each node |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `skipShebang`     | Allow to skip shebang - '#' |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `jsx`             | Enable React JSX parsing  |\n| `tolerant`        | Create a top-level error array containing all \"skipped\" errors |\n| `source`          | Set to true to record the source file in every node's `loc` object when the `loc option` is set.  |\n| `experimental`    | Enable experimental features\n| `raw`             | Attach raw property to each literal node    |\n| `rawIdentifier`   | Attach raw property to each identifier node    |\n| `node`            | Allow to bypass scoping when run in a NodejS environment |\n\n## Builds\n\nCherow contains 3 different builds:\n\n| Name        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `Stable`    | Stable release |\n| `Next`      | Has the `next` option enabled by default, and support all latest ECMAScript proposals. |\n| `Bleeding`  | The active development branch. You can and will expect bugs with this branch because it's not stable |\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is highly coupled to Babel, and is comparatively very slow and buggy, and failing to correctly handle even stable ECMAScript standard features.\n\nNone of these parsers would fare any chance against the official Test262 suite, and most fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n## Benchmark\n\n\n![](./media/benchmark.png)\n","readmeFilename":"README.md","gitHead":"0bf03fe36554639f25e448e89809dc83a0acd490","_id":"cherow@1.6.8-dev.20190110","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-IcrJIMjGsS+TK20xYaQ0wIFzm8acZpWU4m9ko2VGvzlMTXNYkJvZno0C2J0uqQ1mLilD8yd02r6r7OT07iLSWg==","shasum":"42795a0052f4cced7f7945ccc84b37b920ed6397","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190110.tgz","fileCount":115,"unpackedSize":1954899,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcNovyCRA9TVsSAnZWagAAHE0QAIK1wH/e8n5qsleO/2kr\nLnaKTNJ6pD2yqnuDgPOOWdVWc0+cRqYWc9QXWphstk8/pi/0R46MNY2dTJ1O\nSq9g3apoz8FSrTR82HD9Kra+ZogpyjrZFbaSXr57ycuzPGMtx7l20+ezYYPX\nNnvW8ZSAyR9PQziirO5f4vTeeQFzjaqYvjt1vyGQUTZhj6GJ61MR/WzZwxxY\n3TYyPAI+wwXwi0hhn/KAcv/STmX086MovZ5Dw8HGk3Jws3JrYyHY+7xTeAK/\nOw3628DdkRJ1ITmWx5vzpwNz4mJ5HK7E069x3MGWubh7AnJLyfjcqvCjVguC\nXV85j8p3fiW7Zu69kuuWGmDc+PRhcD5OZh8eq5nzc0CfmEdxO4IoO5DnxxWn\nWbE+1yJzsY1NLRT5X+KGZxjB//DndSjKCOhG7lqPNMG2TFEIfv98q863nJu8\nEm3n/42ctItFV/aPymySFX10U6kl6IbfQn3Zc3KdEo+fOacBdmxgzs1uUPRv\npDLOoQSqCKwiVYPI1SinPsZhxGHRrwVu3g5N9IrxhsZ55zC1YI4L0YzI8s9K\nycKqNdpf/jnk9mWgKKgHqcB8/LD/qrgnUNh5ZvLfe1FYFEXEFY7CRycq3kDf\nvCPRrrjyqr8kQ3OG4B3QCYwz4lnpXoxDXr0DoIkWoB8KJr3yV838M896a3Qz\n1WoF\r\n=sGVG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDAcoTZKXKHV8vTqKEJdqYZdGY7aaOjxY4+bRKVN1/AsAIgHKIXuCJYGSsEs9tUWpyr37IB/TbuoYlXZ7sZUPIoB34="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190110_1547078641946_0.17347030462503432"},"_hasShrinkwrap":false},"1.6.8-dev.20190112":{"name":"cherow","version":"1.6.8-dev.20190112","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.2.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.2","rollup":"^1.0.2","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.1","rollup-plugin-typescript2":"^0.18.1","source-map-support":"^0.5.9","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.0","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.0","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support for all stage 3 proposals via option.\n* JSX support via option.\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~26 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~70 KB minified (*18 kb smaller than Acorn*)\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [Private methods and getter/setters for JavaScript classes](https://github.com/tc39/proposal-private-methods)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('g_plane = chinese');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `loc`             | Attach line/column location information to each node |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `disableWebCompat` | Allows parsing without AnnexB |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `jsx`             | Enable React JSX parsing  |\n| `source`          | Set to true to record the source file in every node's `loc` object when the `loc option` is set.  |\n| `experimental`    | Enable experimental features\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `native`          | Enable \"native\" NodeJS / V8 features |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is highly coupled to Babel, and is comparatively very slow and buggy, and failing to correctly handle even stable ECMAScript standard features.\n\nNone of these parsers would fare any chance against the official Test262 suite, and most fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"a49bd971e655e96c05c90a2a61bff98c93bae3d4","_id":"cherow@1.6.8-dev.20190112","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-wxxUca3RomdmCyTmzLimAD6jro8X25kwaFGWDidQli1O17stLofS3qFQQZb4b+nidyWk/kIfMEDfU3EdX/4jcA==","shasum":"41c2fc7e5dc020b879521cd1bc803c0d8d664baa","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190112.tgz","fileCount":69,"unpackedSize":2145398,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcOS7hCRA9TVsSAnZWagAA7WEP/3U1jA2Rfbqr2L/DAE/X\n/XjwoeBQdOsxH2NAU6XzRYXVPMhlhAk/I+dqAeYKASNdP1ajPp4vEfkeeR/R\nNESaZJ6z/wYx/Zde2Ky8t1lEmgnhABAdO9oG1MjIC2qL2+aJ85b1GYHzR7UZ\nIpBI3+YMiGlnUti/yYTDU+4Jv8M0swWho/7VZ6rrs+r1klJ1g1UlcB6yYb++\ndQ2Kixn+HtJownN//WlNihgRnExDEA3mzrVoyIwttLlHMF6fOOgAfKlUtuF8\nkd9zvov2suVdl5W9KlF9gN71krh1yvPW5IbJgNhB7rlA0Nu9hkX+TlZsqjnj\nRLvnOdrn8M2LHMdclmSER/nb5NzrmDPXRmqWoRh7VZYrUAGCtnLLYkLt9MRg\nFuFzsA+kYW27Df3fyE2Q6liSnDWN4KB0GtdIukQV6T/gfpZ5jrCdV4E9LGwi\n9/QSf8FbqlLq958My55i5N/P03Dh5Pq0qJm0iOajBkPesctjnoR+QDzX+/uj\nr5qPOq5DBQLQohh3CATBYUvASw/1tT+wAa+cE8t8HWpsccJn9a0EBZwC0PJy\npdSTugZx1pRxSeznZzELcSwLLMjgn4JNEMn9eBR6KY/DmY1OAw7HZhHwi0ui\nTVkrSCj4HopORc4EOuYtib0qEtoqrz2L09gf4CFOYwemdpxaM+ulUwQKJ4uv\n+lLx\r\n=WUkw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCEm9ALeFisy/pxlMaMsez7SF/D1m1BeBAOYix0kx50+QIgOUXgROAN/RfKl1ocCbLuQ3mL9WQNXlU4smjOtWN8iok="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190112_1547251425183_0.7827302351878884"},"_hasShrinkwrap":false},"1.6.8-dev.20190113":{"name":"cherow","version":"1.6.8-dev.20190113","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.2.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.2","rollup":"^1.0.2","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.1","rollup-plugin-typescript2":"^0.18.1","source-map-support":"^0.5.9","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.0","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.0","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support for all stage 3 proposals via option.\n* JSX support via option.\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~26 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~70 KB minified (*18 kb smaller than Acorn*)\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [Private methods and getter/setters for JavaScript classes](https://github.com/tc39/proposal-private-methods)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('g_plane = chinese');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `loc`             | Attach line/column location information to each node |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `disableWebCompat` | Allows parsing without AnnexB |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `jsx`             | Enable React JSX parsing  |\n| `source`          | Set to true to record the source file in every node's `loc` object when the `loc option` is set.  |\n| `experimental`    | Enable experimental features\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `native`          | Enable \"native\" NodeJS / V8 features |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is highly coupled to Babel, and is comparatively very slow and buggy, and failing to correctly handle even stable ECMAScript standard features.\n\nNone of these parsers would fare any chance against the official Test262 suite, and most fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"e0b7636c93867c7c16a5d97cc8105de3aa977c54","_id":"cherow@1.6.8-dev.20190113","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-fumm55RBzXYE+W+6uBiggROEIK7yaxS5obOvYu+Rl70uDhcAB4+aBmtxvk5kgd9P7UlF3naS5sdb/caOekX4tQ==","shasum":"babc82e54095296c04af8aa11ff095b09fee76eb","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190113.tgz","fileCount":69,"unpackedSize":2136473,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcOoC+CRA9TVsSAnZWagAAA/IP/iVrXEBitPIqH2V1+EJU\nlN9LSiTdoTKQzFTIwvkf0nNWVq1LMbaPf/t1ESfkaOx6CR3ruv6zWNXJyush\nKMvyPPTownqPmDV1hUDTTI661FoEdSwsPykzuF/NPLCw3absqrFRl/OCNpGl\nGhM9P0DFPvgfPbUQgZZheZW8dAy551xm8TEB4IgyM497GBNJn/oh5GVTe3u0\nypMX16aDSXh4Q2MDEuZM7AnG5A7Y38pzx5g9pHq+kYKhTQKWH+u0BRcEn33K\nQxcZmfg077OggOpWZfSK5BUpRoMMV17hQbE/C/LxJnJZUFHEggA9RKHWCZds\nnLGX6Y+jNiPUFiqWhdBT6vrc5vICM3kc/+Dael1f0/llCsQc7N1NFELs0GrN\nUNxARHljf/n0BtUpj4bJNaOkd9lAlPj0h9We7m0LqMCJWK3L/fuSqA8aeJUL\ns2okFkeP0Zpq+PDzXaXyXSNeD9rqLuxoOdkuVaq+E9Fa3dOq3aNdGQW5VDtL\nWSFCp+3UKlx03OFu1MYryj0/IndHetIEt3h6MmztPhlG1blEZ2n6kuf2yYpK\nuZvKLXnRHOyV5qk9l7vMwwMyTyex59bB2hK3FBf3O7V7ghS5Rk0DxIyUUx/E\n02XMiXusiMb3Y+WwVPuEu+J+riIY2sLGx6vOFsSAqcvPjv4nV5LbS5j5kpWX\nYjf0\r\n=HIoZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCnl40eSCLRM7wPIWiwA3TKsmOK24A+bpW+m2V1XyuhZAIgIlUwQmC2WSZJcMQLU/+/XLSd7oOi9/0H9mdDYtSNNjo="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190113_1547337917987_0.46153389256557387"},"_hasShrinkwrap":false},"1.6.8-dev.20190114":{"name":"cherow","version":"1.6.8-dev.20190114","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.2.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.2","rollup":"^1.0.2","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.1","rollup-plugin-typescript2":"^0.18.1","source-map-support":"^0.5.9","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.0","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.0","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support for all stage 3 proposals via option.\n* JSX support via option.\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~26 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~70 KB minified (*18 kb smaller than Acorn*)\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [Private methods and getter/setters for JavaScript classes](https://github.com/tc39/proposal-private-methods)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('g_plane = chinese');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `loc`             | Attach line/column location information to each node |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `disableWebCompat` | Allows parsing without AnnexB |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `jsx`             | Enable React JSX parsing  |\n| `source`          | Set to true to record the source file in every node's `loc` object when the `loc option` is set.  |\n| `experimental`    | Enable experimental features\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `native`          | Enable \"native\" NodeJS / V8 features |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is highly coupled to Babel, and is comparatively very slow and buggy, and failing to correctly handle even stable ECMAScript standard features.\n\nNone of these parsers would fare any chance against the official Test262 suite, and most fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"f9feb4664297047e3df3d7f45e8ec9e9e682e3b9","_id":"cherow@1.6.8-dev.20190114","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-nQFFZBdlhCvK7DY6XvPd2BzqU9GKX0Q+inYtcbcGb0dg0pGE3LJrhl7Mp3B4F3njNzxzCAUS61xpTSRFKtqwww==","shasum":"11bab3f212cc0cb1c83dfda5b6d7db2c1af1269d","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190114.tgz","fileCount":69,"unpackedSize":1893642,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcO9HnCRA9TVsSAnZWagAAQ/wP/jtL8Jav6POGiI+r/mOX\nlYDxkI812xL6fBxOwCMu8vzXlB+T1UQXasteigs7/k4cnb22KgwUqwYfEf+U\nnAMcOGaHjr/oMAu00+2CZfRNZuVomXEuXP322oQmXePL3nWTzT3vda+woWr3\nVuA2ZBeM0QQS2Hqj7WkbBPKQZKtJgUDqPy3Cg2lc+twbq8SrOBGUHpRXRpH5\nJdKR/ZX12CO59S0WcY69+K5jBDJ5bzHBEniXOtvZpOZ/c2PhXegz4PQiPN1s\nVOYmmhCiZTNgceIUE2qGseZClU4LIJjyEHRwKNgFigN5dP5xOSS8egywZ75z\nOyyzGf5JQzzfpwH0YnPAH7MxOuGb93y//Gjkt1fdRgGGCIan2tu5OIQzetQI\nPLAnAEzbjfKh7tjm+KT69dD307vHANJsZOczVO4Urcw/rgd21FGHucUxaaYZ\nO5pVOaK2E7ScR0FhW9J2aSciikC8q3UjuQsnDU4Zl2HE8oGV1z1Cbt9vhEm7\n+qbwZfISp3OF3eu8C1DmW656AKx4lQ+WX0M1xeknTlJsV39OuAipJvxuC3cM\ndB4hyfV8eSqNB3mv54iEMV6wW3+U0YIUnRU+TlAG7XG+A8fAVYgW1xluftfs\nJgkBZe+5X0Ip+ay3q1ccXdClUqDEbEVr5dFJQwhbd4n9a9rvx/IH/09fCiVL\nA2u/\r\n=kkXL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCUZ0SvBbi2pu26cOLVV6Sq2t2zh1XaaE89bMKWuitx2AIgXHykCBlX+Wf/ApmAX0K2LvlEuI5gjCPaT9BERuEVsHs="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190114_1547424230503_0.6232372695981088"},"_hasShrinkwrap":false},"1.6.8-dev.20190115":{"name":"cherow","version":"1.6.8-dev.20190115","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.2.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.2","rollup":"^1.0.2","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.1","rollup-plugin-typescript2":"^0.18.1","source-map-support":"^0.5.9","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.0","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.0","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support for all stage 3 proposals via option.\n* JSX support via option.\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~26 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~70 KB minified (*18 kb smaller than Acorn*)\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [Private methods and getter/setters for JavaScript classes](https://github.com/tc39/proposal-private-methods)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('g_plane = chinese');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `loc`             | Attach line/column location information to each node |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `disableWebCompat` | Allows parsing without AnnexB |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `jsx`             | Enable React JSX parsing  |\n| `source`          | Set to true to record the source file in every node's `loc` object when the `loc option` is set.  |\n| `experimental`    | Enable experimental features\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `native`          | Enable \"native\" NodeJS / V8 features |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is highly coupled to Babel, and is comparatively very slow and buggy, and failing to correctly handle even stable ECMAScript standard features.\n\nNone of these parsers would fare any chance against the official Test262 suite, and most fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"04dbf7fbaf9eae49a9507bed7a71f0dde452c4ca","_id":"cherow@1.6.8-dev.20190115","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-uVyDxB15aXvi2ofmkq6lrvLQxHpKf/GV+erpezWm3XW9TWT9yumD61JNFv95qyT4x+SKO3aHGel/7pdiLQSdzg==","shasum":"5c63d1f5b229ff2d4ec432aeda96dc00f28f8d62","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190115.tgz","fileCount":66,"unpackedSize":1909527,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcPSNtCRA9TVsSAnZWagAAKSQQAKJV8fuqwcl7KqEZRdv2\nYqWikjD4MjBBlZrePr2r/Hda6at1PK9Ty/eCIu2HxV+9JVSbQPBwbWhWXfgS\n7cOXLgxzwRynAbAYYJz/x/mJhiMJh5b6Tyo9DcexEk1qY+oNaGBRw+FZqZKs\noTMTlA1ugASFsHAe5Mn73pEqfvF41t9mCQGJJBelh5uNs1tQIOACwxUPSQoQ\nU1kDXk7E5fKvwu58WIccY4UUZzzyEmj675Ykq7TexELIqZT8BNZ4dcZHHUzt\nwEYkVQ1rTDEkDCXk/AYFzw+1F8zvYOJ9vJdmuCEoHuwI3XkZ0Xr4PSxf4ib+\nKigkVc6Ojgoz8Vf+ZHRmPPAigHV9NHhE193HtQmiOOD4TmzDNkJuJc+KsSNL\nB2O94ucjNGOBaL3iBL8VvAs2RLR++PctisX68ln/ojioFTg5HT43IULagJDG\nDHyX8uzmS2+V6n0cCjEVmUSWdBwadkciLM5w7wX4FCOkYbppYT6JrH/YfV/p\nbfo+GJzIiV0cxTI4hal5O4AUuGGicNCnrjE0JMXPyOiJvMcO5Qj2YnMAsE/g\ndgwgMniB4/EE05//RTJFMKGuIRaQmcjuQfrdjqIKTDTnKVYyu6PEBS2W1b5t\nLFb7Lrv8Lx61GykkUqzvrFgElwgs/QIoMp5yO+FLec1OA8hWlTkwFoqgs8Mv\nlymd\r\n=hVJT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEgTHl81x4/O8U6pCyksRN09KsIosTjOt8YqRsQ19iZQAiEAy1ug14ph2sieRlFCLShp8OM2eMfcLBCZwMYzOkP7vnc="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190115_1547510636282_0.9921270932227113"},"_hasShrinkwrap":false},"1.6.8-dev.20190116":{"name":"cherow","version":"1.6.8-dev.20190116","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.2.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.2","rollup":"^1.0.2","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.1","rollup-plugin-typescript2":"^0.18.1","source-map-support":"^0.5.9","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.0","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.0","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support for all stage 3 proposals via option.\n* JSX support via option.\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~26 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~70 KB minified (*18 kb smaller than Acorn*)\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [Private methods and getter/setters for JavaScript classes](https://github.com/tc39/proposal-private-methods)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('g_plane = chinese');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `loc`             | Attach line/column location information to each node |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `disableWebCompat` | Allows parsing without AnnexB |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `jsx`             | Enable React JSX parsing  |\n| `source`          | Set to true to record the source file in every node's `loc` object when the `loc option` is set.  |\n| `experimental`    | Enable experimental features\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `native`          | Enable \"native\" NodeJS / V8 features |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is highly coupled to Babel, and is comparatively very slow and buggy, and failing to correctly handle even stable ECMAScript standard features.\n\nNone of these parsers would fare any chance against the official Test262 suite, and most fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"a365d7172581b03f5e596abd85be37cbe9f22217","_id":"cherow@1.6.8-dev.20190116","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-xlQmwz61CSVMoer6jL/K08izdaUjv0DwNF4K0PdeXHJLBY0e3V8IxqGYXRKTIUCNmpz7eYpQ+Fg9vw+DRDTNJQ==","shasum":"ac44e8690effa13c78d25649730fdb951967aa03","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190116.tgz","fileCount":66,"unpackedSize":1929411,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcPnTZCRA9TVsSAnZWagAAsvwP/iv4oJ2qcjoPLZ+AWm0p\n0tiR+sqJxg4pYoAXvjjw6M3QUkr8ob4nQXYD66jYNtNSmboQV6dCXhZDapK/\nrJukg6Zl2pgNMTjnNWhHsmX0qd391hVRkEsICFWddbNwO/biFbCdaTyFA1vy\nV/2tF2E8FSsyR6cgY4addbQELjDJYTxXpAQa8v+JT1OZB0RodSygdT42LvF2\nkeXM5DQEwMd5JpWLUnXrDWr6KKV5dIS253eMu4DTkgzkY9zrEgvpe/cL4WGV\nklJGNHVGKGSLakVhtKlUMgbEISNkBnoEEc2icyNmT056PtN4hekAvz97Z5mw\nrxYU1KjHJxjNk9FWqzni15j/0pPwtf2RhwKLScoylVXK/xPAem2ECHvi0OKm\n3mLjAJTewvmU01CoGtR9qPli/pcbZXmW9IoyVRs8qSjly2A51FhCSTpEoWAp\nSn0xfr/e2cSgkbNtcVbbke74GSPC0IdALasyotmb7HF/qgq6oMGSXsPgrMOX\nbBASvP7IcjdgqkgAm4AYQbZl0lrsB87CUbPcRyyLuy+3syIvYGtGSUQHEjQY\nWt1ipXuAe5dlABuf/zzatsFDOkuddIhg3E0j1mE3Fi6D46pgQ3Er4Ryb5Pwg\n+jZcKnhE2A6w+lqU3bEu6GyvWyLab0SjfCWK9EDMjettFRrlXFa/ESZTqpzw\ntG5d\r\n=yoNe\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDXMLH7SfzXieTMEeYWHIYjZBgqwqRu2cvKEHv59Rn04wIhAJpuaXJrWvsTBJAd4yOz2fa8aKq1xZNfTLYQXXVzEHml"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190116_1547597017056_0.8436459846037887"},"_hasShrinkwrap":false},"1.6.8-dev.20190117":{"name":"cherow","version":"1.6.8-dev.20190117","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.2.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.2","rollup":"^1.0.2","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.1","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.9","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.0","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.0","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support for all stage 3 proposals via option.\n* JSX support via option.\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~26 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~70 KB minified (*18 kb smaller than Acorn*)\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [Private methods and getter/setters for JavaScript classes](https://github.com/tc39/proposal-private-methods)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('g_plane = chinese');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `loc`             | Attach line/column location information to each node |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `disableWebCompat` | Allows parsing without AnnexB |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `jsx`             | Enable React JSX parsing  |\n| `source`          | Set to true to record the source file in every node's `loc` object when the `loc option` is set.  |\n| `experimental`    | Enable experimental features\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `native`          | Enable \"native\" NodeJS / V8 features |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is highly coupled to Babel, and is comparatively very slow and buggy, and failing to correctly handle even stable ECMAScript standard features.\n\nNone of these parsers would fare any chance against the official Test262 suite, and most fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"e789523b7009d1b40444107240d916b925ad0fc7","_id":"cherow@1.6.8-dev.20190117","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-aN1Mhxt45IGYZbrh4YtUEH97bbadV5DIFkzI7VaXcHR/ISVjQRG4WleN+P+Vp8vfkxINeIcQ/xJaTqhNhNmPPA==","shasum":"1a976c7f96f0bc64f567e58e7c0fbc8bf7f2ccdb","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190117.tgz","fileCount":66,"unpackedSize":1945673,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcP8aPCRA9TVsSAnZWagAAmSkP/R8VUeyqukWL01f4+dLl\nuCnZSwJNJuav0sLZhF51sUN/FlrTKnzg0qhdvIU8G1DX7EZcP1Dy7WgCgc4n\nQxB16xIEr1eh2Ckg3KLmlNEdD4TBNGGfvdcdkHxCUByNLNWonFeiP+CQGuL6\nlC8CBWlAplhDjwlQeqUFVgmFyffJjH7eCZpIvizwveY2gnXlHYGIyEEBpzP/\nYjAPiG0Z7qZFbwEBMHNTnpwtHIqyX8gbmI+0RhiYHBypAxhEJYt2W/4wo5p7\nHgZWtQ5wu6P60lP9xN+TErlCACQnVwuiv9BIlwmcKelvtXmGSlZCy1O/HaLs\nGPqD6DpwClLBPOUNwpk6EHgL1pKtdGFzc4oixMKZ3vE+ymRSyHOnAJxzIOfg\nBDNVHUqBvkxz48A/fHpn8nx+SS3DSzjdNq37sQTiRmLwG3TeVsRP0W2rxlUk\nxeI8Lpg+dcpVbyllcocfES6+gwjHs3EwxnD2HjgEfGKlqCxdi0bWFlWyDgfX\n4KQ0Qb1J2lQDGi4jM3sCl6aa4pSrF+w4MERdPSeHkGe3uFfKvrt30SuikywR\nh25L1FXgY54gKmefLujpag18R0YzR8R7Ijgg2M0GZQEZUqLkp3vWkHSYG4WG\ncj2Tg0tk/qilloiZzW4whzT87Ytwbs/hllOM18JUyPziYKRAFicgmRB7eFpe\ndU+A\r\n=sEwL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHvoOQ39tfU12FfrPYbTTJBvV1ndTkbdpMLl/FYyDhfXAiEA96lXX9Eh8ZnU4Jy+6HpxZTPrFynmIHEX8XEAftK/l2g="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190117_1547683470518_0.9160005040491792"},"_hasShrinkwrap":false},"1.6.8-dev.20190118":{"name":"cherow","version":"1.6.8-dev.20190118","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support for all stage 3 proposals via option.\n* JSX support via option.\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~26 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~70 KB minified (*18 kb smaller than Acorn*)\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [Private methods and getter/setters for JavaScript classes](https://github.com/tc39/proposal-private-methods)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('g_plane = chinese');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `loc`             | Attach line/column location information to each node |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `disableWebCompat` | Allows parsing without AnnexB |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `jsx`             | Enable React JSX parsing  |\n| `source`          | Set to true to record the source file in every node's `loc` object when the `loc option` is set.  |\n| `experimental`    | Enable experimental features\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `native`          | Enable \"native\" NodeJS / V8 features |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is highly coupled to Babel, and is comparatively very slow and buggy, and failing to correctly handle even stable ECMAScript standard features.\n\nNone of these parsers would fare any chance against the official Test262 suite, and most fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"4f5ffbc19ba7fd26e244e874568df7faaf69d55b","_id":"cherow@1.6.8-dev.20190118","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-7e6Yd1Q5JfNDnCWEvs1HHds3BnG5IU+NtUDi4XANlBg3wUtI9KIfi8b6tIyApjTPtls/QugZT/RMbYeQjBSymQ==","shasum":"ae68f8377e5950feec32a8173f49f89d05c5485c","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190118.tgz","fileCount":66,"unpackedSize":1960425,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcQRn4CRA9TVsSAnZWagAAAvUQAJ7k98lz1uUxQXtLhQlO\n73F3B6ALVp5MdUOSiLzIfglamU6eCm9cKDzcfNf+SfebM6gXWsBwAuNtoDel\noRFTawYEdkLryZ0bkpsfqRdvQtPCX5PE63EvnxzkLtKpjs1aJk+t18kbV4yR\nFlsOx9E9qHgh4OHFeU+fraIuQipdP8brDcXQpiYQNWmalYOuEKegbcGt/0zr\nNtcGTN0VR+lkpN3hefo3sElzKSmkG33A+MQfiMMI0zR5dnbRQunH0C1ni67m\nbVbDKvc29aoI/v2KLcMvAEkx77PJZtFSNUAKidgEPv44VpggW4CDekiyMzqg\nuI2Kq1WRQqMFD6opF+WQpS8CD5JQSJar0pbLqIWhvBHHeEyPThR4Cmzuf7MY\n5a6k8rKD2vfWpV4n2SKbhx29snLXD738u2hj765s0MIATn1pgaUcvl7BzDKW\nfZO5F7NTpaZMQuJVmV1427yieb2/LqOs3ij2UzR6qwBAv+slgfiZ/oR+roh/\niQtjs2heeUAnZqqzIiUffrPfkVjAbyNvXdsPv+drrIbgXg0xZHSdllu9gsV0\nsM6k3fCeKikoYHvjOeYuRz6J6ACzdZ05I1Sh/7QeYw9DVSoqROvpb25kFK0n\nNPufyZaN+zGsmOx4jStx1b20htF1csTbq1MzHXGhsnhXIrBIbB5ZfrCT81Ma\nfQqj\r\n=11Er\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAka1ibGgcDMVvPQGo6KD+3dQ9cdS51iyq6wdxH1kacyAiA5Zm694+hEz0pCT3R48t4+ytUqIwHrD+HqQT/U0pdqug=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190118_1547770359291_0.39010172488818085"},"_hasShrinkwrap":false},"1.6.8-dev.20190119":{"name":"cherow","version":"1.6.8-dev.20190119","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support for all stage 3 proposals via option.\n* JSX support via option.\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~26 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~70 KB minified (*18 kb smaller than Acorn*)\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [Private methods and getter/setters for JavaScript classes](https://github.com/tc39/proposal-private-methods)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('g_plane = chinese');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `loc`             | Attach line/column location information to each node |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `disableWebCompat` | Allows parsing without AnnexB |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `jsx`             | Enable React JSX parsing  |\n| `source`          | Set to true to record the source file in every node's `loc` object when the `loc option` is set.  |\n| `experimental`    | Enable experimental features\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `native`          | Enable \"native\" NodeJS / V8 features |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is highly coupled to Babel, and is comparatively very slow and buggy, and failing to correctly handle even stable ECMAScript standard features.\n\nNone of these parsers would fare any chance against the official Test262 suite, and most fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"7ad02c95e867d70fff92201e4532860893f5dc68","_id":"cherow@1.6.8-dev.20190119","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-5DppyQfzBWCheBlpSkI7UF01AFkVeUD94oS1SexHW1mXHWdMvnlFo+46xqmuMn8VQ5l+6um5jHYKtR+5B590DQ==","shasum":"25c71e20c09b8c3ea52008d8c97e31668a03004f","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190119.tgz","fileCount":66,"unpackedSize":1962375,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcQmlZCRA9TVsSAnZWagAAI0gP/ij+IDHUGgC7QucMVv8z\n66kDjnaD7Lza65UYQAF5aDnKzbgmAMOBeeRPIpWRI2b9zW7C7PnOhbUx7NGD\naDv37gfD9kqcvddvOjkARhLkaP4uTK5bUI5HihPLkXVKU+JtJabVzopqoD8D\nV5QKnm9591e5UsSThorKhaJ0VJ44T3U0CVsI2exuNeDJ2BfOD0TdI6dDqDaC\nXgPW3gMvBp6fsLk3eO859iE7+X/jjh3FDKL6Zq2J30pJFxkYCqv1Z7c7aNwg\nnsOalGcGmHYcjHM1hWiGtUh6H9dtbLRGdOP+NeDHntFNBRCovtQtVBkR52S1\nvaqeYUkh4SrNqzdAL5qPjBsN0HzzCZom3buPcJXv0iBK8Kl0lvLhW6QIg8W8\nblkzQrNnVCDSi2aVRYScZsRpKpZmzb6mWw03Sl3xS38WNjAqRiBZjolWIKYa\ny1H7qfsZwYmTLmsumOcMgXYs9FZZYqFPQm9Hpv0F8ICDovV5eO6iJKdV8hpk\nDbHvgY1KJAB2rjdBm6AQUOL7APG/HysukDKkbCu/c12s7yELWRQq3ZE2GO6H\nZQUDAczh38WhikFQRCIuBCc6ZK0kBh99q18j175e1Ic/QDjXAXwgnjIT9p6s\nIocUn0IaZLT9t728j2S22Z+hrmlKQd869vAegl/CjpnEYprR9WNPg6rA2P05\nZWNZ\r\n=DST5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDYMH4SoOnlspjnVpVYCEET2rlD+aqXi5tctbFYKpmIVAIgNKIrj5u8tib1j7X2pNGBsJoR0pJKgX9DNgyt/8fhvQs="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190119_1547856216879_0.4480596895585758"},"_hasShrinkwrap":false},"1.6.8-dev.20190121":{"name":"cherow","version":"1.6.8-dev.20190121","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support for all stage 3 proposals via option.\n* JSX support via option.\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~26 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~70 KB minified (*18 kb smaller than Acorn*)\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [Private methods and getter/setters for JavaScript classes](https://github.com/tc39/proposal-private-methods)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('g_plane = chinese');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `loc`             | Attach line/column location information to each node |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `disableWebCompat` | Allows parsing without AnnexB |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `jsx`             | Enable React JSX parsing  |\n| `source`          | Set to true to record the source file in every node's `loc` object when the `loc option` is set.  |\n| `experimental`    | Enable experimental features\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `native`          | Enable \"native\" NodeJS / V8 features |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"e7e5eb7961e9cadc5a4fe113f95e4c02fca9aeb5","_id":"cherow@1.6.8-dev.20190121","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-6/sngKmrx77Ty/G29LjAzMBTfarWj6jJ0xts5o/FtD40DHqTqU3wXb/A6R8syjP+WFB18tsTV6wIneAKCvO97w==","shasum":"4d47b88529221f7b36aa823a43f055aaef0ecf12","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190121.tgz","fileCount":66,"unpackedSize":1963066,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcRQymCRA9TVsSAnZWagAA5IsP/28eAPUO95hn3pCUMnj9\n0LRK/LL7moSpF6I1+QgLNuy33qOAAtb0+17notXKZWreHzttbFJTgk1Q4aO8\n5NvexcngiX3L5MGoIyyXZtmzJFHkghTS5Ft2nr43U1a5XR9JWZwUTY8rfG3s\nTW7EtkQzcn40ZmW6hExZTPwI+RuO4sMJhqPMtGAa1738VXFcqD2ZCraGtIQZ\nOrjJAmZZa8nfL/nwmwqp7wawQ+GwqmWda78F0b96IDFRf5UP/BfsHxWUb2L9\nFLMzYd/heilpZ2f4KXvm0lvTU/Ywri30Kds6ceUF8IgqTsOpRmOHca6gT8zt\nYeoAhISoMEmCzdlLi9KLYK/QpEEEFC38tx1rRDagLAwLSRke1rKTWl/j0fbc\nnset7EnT4T1lRASmP18ljhlOwR+uMAVUueiwvx25A3uLBM66F/TRY/btcCaf\ngNJZouM6PRkJVCoOpbg3AmBxfI2ZNCrL+vKCgUGKYwnhw52qm7Vmnlw6IB0q\n1sYCNcWpflgMo6JyHTQbbszvU7AUgrMZtQ2nJ0eJKnBfgdq3V7a5gJsIwlu8\nThtap17l32cU2OthqjV8pwqCpIBLe5lzGgHCVjrKVNAaG/rzHq3lZCwzG1MJ\nQEtxj8H0CAsWEbP4pv2LS8ARSixxWtH0ZCWlktHADPv4ceqI1ZiAE5lgFlP2\nSPzB\r\n=wi47\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHM8nTcqqFWa2QrTfVUD5coOGKTmVBxlzJxlFAwC/asGAiA+QWJnE66ldeUugXY+bMzRV/JW60jbF3ie62OTKwdG/Q=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190121_1548029093998_0.016127554152286283"},"_hasShrinkwrap":false},"1.6.8-dev.20190122":{"name":"cherow","version":"1.6.8-dev.20190122","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support for all stage 3 proposals via option.\n* JSX support via option.\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~26 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~70 KB minified (*18 kb smaller than Acorn*)\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [Private methods and getter/setters for JavaScript classes](https://github.com/tc39/proposal-private-methods)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('g_plane = chinese');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `loc`             | Attach line/column location information to each node |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `disableWebCompat` | Allows parsing without AnnexB |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `jsx`             | Enable React JSX parsing  |\n| `source`          | Set to true to record the source file in every node's `loc` object when the `loc option` is set.  |\n| `experimental`    | Enable experimental features\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `native`          | Enable \"native\" NodeJS / V8 features |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"02c7950e49652fd55d46cc55fb14ea1df98f8a27","_id":"cherow@1.6.8-dev.20190122","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-0ciU9+H3ulT0n3OMLjvl0P7yVzF7g2I2QENI2sAzDBI3mFTngs6SzUkoE/G8gLTZSMmrE0K4VOG3Gy8WuJXQ6Q==","shasum":"a64d3eba2e625485b7dea3c31941e4f486db4642","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190122.tgz","fileCount":66,"unpackedSize":2057454,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcRl36CRA9TVsSAnZWagAAYVgP/jXjtDlk7PywYM7TvlKN\nd0czff1lPhLFD9DnyUJ4vw7ROOxvSGtl3uCJIRvBvtt0YD+sA/hdZpLmyY56\nJ8hdSrw9z9B+SePdorESDnahklh7RhVA1yDgGkNKK9cegIDVMjyxj81NPGYA\nTiOhR/WURAGj2wJrKiQ2uIfAsPDaroUenK2Mti277Y+cXwGBXnJEMpLwbdbQ\n9ADTLMwe+ORTBrLir6bXFJjt4rNnsqBHkJ+CeuIIl8k0KQre0FA2wc8nVw3I\n1qn/XlQzZzzQ3VuwKuqTLSv+08VKFu04Q1HUz9AYv1DntqG7iIkC1CPOAdif\nlxw3rgwboDsaVcr+eH5TGLO0gA6mhCUm7OPf/Rxw0Q1hfM4+lWywLhiDiFGe\n4km87BRO/vFp64HPL1389bFZ3Qr6+tXUTw+B6CeqvcslcBUxWRSCdrmj0yG0\nGQO+YWbGZffBDVGyNUJJyQljUNHzoToD/Jv74/Wrhu9zucZZXjSxy0KcI5OG\nIIXp/jQDBKhGm1MjTNKpo2qV/sPlZ9jKZHPJeow9VEHZsXBySCJEiQinEAR3\nrCqbv5G0fogLtBLf9RHFSF2y0Y8Oz+vEe4KrbHb+VRINTPspFptyYcvMSQvW\nhoJl+7CYawotslsCq16iS93Imkvi2EWpjaaJIScUrYwwJQfGeE3RFyF5jl1q\njWIM\r\n=Ah89\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDQejtOmU8n/mJY1xkpQQuV8IddrdzAri1K3IWCB7Ut5AiBq+U7pJXAjXqGJ6xokYwpUwE1y76QJ05VfVNtm/WGqdA=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190122_1548115449942_0.8742621241151731"},"_hasShrinkwrap":false},"1.6.8-dev.20190123":{"name":"cherow","version":"1.6.8-dev.20190123","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support for all stage 3 proposals via option.\n* JSX support via option.\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~26 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~70 KB minified (*18 kb smaller than Acorn*)\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [Private methods and getter/setters for JavaScript classes](https://github.com/tc39/proposal-private-methods)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('g_plane = chinese');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `loc`             | Attach line/column location information to each node |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `disableWebCompat` | Allows parsing without AnnexB |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `jsx`             | Enable React JSX parsing  |\n| `source`          | Set to true to record the source file in every node's `loc` object when the `loc option` is set.  |\n| `experimental`    | Enable experimental features\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `native`          | Enable \"native\" NodeJS / V8 features |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"8304284175984b8cfab8b706504cd868bcb7b991","_id":"cherow@1.6.8-dev.20190123","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-O/ja7wesjZn/KxVvZ1MQWMX8b049HM/nk+s47hVW7cPysuGBTnW+0oVwMbDP3O+Ywb97ZI2NRYUN2vHEzAirHw==","shasum":"1f08f89b8d6d45d920b11d81412d62448ce8e7d3","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190123.tgz","fileCount":66,"unpackedSize":2070513,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcR6+KCRA9TVsSAnZWagAAAjUP/3kbNaVrII6BHqbD5cAu\nRplnOGApSsu1mBQfMSlkfOvXL9G8CCNW2e/iE6IDr2o5yu4LLuke8EUF6ibS\nNYR7Koed3QVR9ywRtfJRaPAUyPs+ab9AMuj7hQOf8EwZUQ51r3ru4RfMFlGv\nN7UoNhFd60v5iodfeZ58rMGFCQnTC+y1IymJbmVVd/JitSODVjlD4A3vSFX9\nxc4I4Vx6H51cFeJCs3IJ66zGZUXxutVSAvmHv+5hGRkoPcFhlt1MGHZwEXXB\nWx2TQugIsQN+dsZRc8fBwJYNT/GlNdxLL3TyA36TNklfjPH8MCfXrQTH0e00\nPgVj1R8rUyRKRTDOKCzjXz3BpOPmBiYVW644Gbt5/75Ejl1IQ4nY4xqvV0/S\nFQap5l9hWHuU/92BcF6keWbjB2FZzWfJTTIRsMx5wjG9osQ5o7ojVhCCnFno\nwIovCnXS/fiza+q7cmfO1XXvo0/JMnWJBXLM9+v1n5iDj0dpMTz7hn6+++TX\nxIeQrN4XeYGBvEcMOpqCcLrylvy7XQutogPCGiOM0JeqMtlWVCsMQISSopdh\nRiNHMU6plF0xTEJU0AT850NC0PgB9++kMu7WyEigmzbPnWLcoysoTjOF3tkT\nTwtM5ZMXMktgXBeFTUon9misxigrVr7uWXc9C7TYZokdqMoJcUem3NeW3yav\nwU8M\r\n=7s6e\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCZvAoDtyeCaJkl8fvkUpbk47z5/v0TGi7/JYldaeWG6QIhAOf5/akW4d4I8aSp4KELr6EXvHwsDBJT7VhRraWy+HHB"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190123_1548201865794_0.25069069679495315"},"_hasShrinkwrap":false},"1.6.8-dev.20190124":{"name":"cherow","version":"1.6.8-dev.20190124","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support for all stage 3 proposals via option.\n* JSX support via option.\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~26 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~70 KB minified (*18 kb smaller than Acorn*)\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [Private methods and getter/setters for JavaScript classes](https://github.com/tc39/proposal-private-methods)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('g_plane = chinese');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `loc`             | Attach line/column location information to each node |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `disableWebCompat` | Allows parsing without AnnexB |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `jsx`             | Enable React JSX parsing  |\n| `source`          | Set to true to record the source file in every node's `loc` object when the `loc option` is set.  |\n| `experimental`    | Enable experimental features\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `native`          | Enable \"native\" NodeJS / V8 features |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"bc8e5248e9fca9cb5c7fdad3ac663bcaa2b8b4d5","_id":"cherow@1.6.8-dev.20190124","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-cH/888Kol7gsnXRl3cp2EAKZVIejzYU0iRZB0wwNoB0/wwQGCiyLKYa2Snt9a4yH27XU4ewcbhxKUQPyCnHOow==","shasum":"e94fd558cf8197572af9346d603df87b2c16f76e","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190124.tgz","fileCount":66,"unpackedSize":2087273,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcSQD6CRA9TVsSAnZWagAAFfQP/AhqIN8slD/Pd5wfehZ7\nWt4TaoiWZXQpFzoy6oCOwrwrrZEJWHomMBKy6t6Cpbb2ZvOVb8hy2StIVqCa\nxQ2F2QKAlqtrw05xeGyGcPPmktSrU1nQTmSRTfzPi+pwbDpCX+mO33koMTGk\n0iF2XqeHd7ad0NrqN0ZrOLMbplvCbP3nSG9S6C17tw7xoSeAvA1qRp3nEII4\nKb45ppLlLuEKcxSjNmAZqOs8ZzI+pHQ+3/Yn79aSMciNUUEJ0xIFci1wMEz9\nzTASVWKpjyLe1ODWv1GGN/lc8SQzYiSWajh0Qoua7LvMj79MRqxqICXJm0PZ\nVJ2YW/RQBJ8lQqR6qWUkPFRoLfnTjT/EAaHcFAhJDEfQvnaurCfbPy7UaYJD\nAGKwJ5k60ZyBucJvH1aKeZGhiPmhW8viYJehZWu3DtxhZJ2W7Spdzjespm2G\nbke+cMQV1BWFJ23OiYF05EEMLvH0qkKyuHfQaB+YRRPoSmsHrIn6mxZZkx7K\nUZqL5lCf9peAwCKto65ry9e1dSDwo7TsHRZYkOeAlV3+V1srlX7Q+5EHao1e\nos4hNyMYz5ZAPyZ+7aqgTj/jzKIn/iLseRrqkeUiDz1HAf/f4Aar9GHercYl\nbilzeUdSfLJ0fPoFxlRVd5VaGpOM/sCoPwVnnTnAxy0OWDqBklO96/nIQuv4\nb87O\r\n=4lmk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD/tLTAi/e1P51USVu6mFBWpkjW5piVprh3ERJKFBIIzAIgLShJe7UKjT1zpwlODVRc2gHFb3wUIw9h+7azK8bSjOY="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190124_1548288250192_0.8663451379821474"},"_hasShrinkwrap":false},"1.6.8-dev.20190125":{"name":"cherow","version":"1.6.8-dev.20190125","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support for all stage 3 proposals via option.\n* JSX support via option.\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~26 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~70 KB minified (*18 kb smaller than Acorn*)\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [Private methods and getter/setters for JavaScript classes](https://github.com/tc39/proposal-private-methods)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('g_plane = chinese');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `loc`             | Attach line/column location information to each node |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `disableWebCompat` | Allows parsing without AnnexB |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `jsx`             | Enable React JSX parsing  |\n| `source`          | Set to true to record the source file in every node's `loc` object when the `loc option` is set.  |\n| `experimental`    | Enable experimental features\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `native`          | Enable \"native\" NodeJS / V8 features |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"cb3d1c26a39163537d15a038557a4a5cb1418d3e","_id":"cherow@1.6.8-dev.20190125","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-tmequzW+4SsKhw9almhJ1dE+Kxy8h3HK8ueHZOaxx8SyDHgMidxzOqg7+FFfSFq/c4OjWxVEGezERFFdfY2/2A==","shasum":"18d729a51dd60ace9cf3749f416338dd1ff82c25","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190125.tgz","fileCount":66,"unpackedSize":2100164,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcSlKgCRA9TVsSAnZWagAAJ+sP/RS1wqoVqs0IChfPbu4N\nilWIn3A+NKm2GCy8FZCBzF9wEKn7Qdjy7le6RcYTkk6MSYKwQLyTRgcOaME8\njuo80ur58teKMUFt4PfiK98lm9fzS/KrSY+GqeMA8cDp9IIWPPbHIoBqoKc+\nyeWC8ZHnLmstEiXiQzNkg51jJEpppDV+cDTBXa7CFtAeCKKAcpb/HwxvQ8QC\n7Tc2nr0DT5ezSXmnBCimb6E++BU/f4vtpVCNULftYK5eYgVLEK0//3ffnZld\nEvJzm8nvd/i3V3IuXpAqHZUlGja/GhwEiP+bDGdiCSBzST32CHmumIFJ2y/D\nrsrtITL0leotLzyfNCpDkCfv13GPIVaSo87KOIR/F80EPhwINVV7ZOepUEe7\n8uslxQI+lPhHeYRdfS+BuLieNKSmhdKoIaPeJY95YF6SLHCI0d5nzl6OD25D\nHnXTI11uifHNIu20f8T+JQVE1Y/+zVYCv3J+jMCyze1NbplvRo0Ij6ezMgNQ\njhZ6U9UX5eTMbdL7rZZIhtg3vjw6W641LstATRX+0zUNF27L5Xn/PybVkLaz\ntroWZnJ55QYO5Q5SI2i+FaFI4D46fEfjXzmzAgz2iFIYRXjeTcGTDfdXf8vL\n6DbWUapu42wKIeTjbEp4W476Z7+6QRtGCROVv5nX5peaK3XQg+7Uaj+oVlZi\n+TaH\r\n=TQWy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB/WIFF6XKVV6qF1DI3mcnkNM+/LfdX8PGUMHgYKi746AiAiTsnZSLt59jQqRPNCB7sEL7Z1SN5ikldkAGhqo0KssQ=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190125_1548374686831_0.5115523914582931"},"_hasShrinkwrap":false},"1.6.8-dev.20190126":{"name":"cherow","version":"1.6.8-dev.20190126","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support for all stage 3 proposals via option.\n* JSX support via option.\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~26 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~70 KB minified (*18 kb smaller than Acorn*)\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [Private methods and getter/setters for JavaScript classes](https://github.com/tc39/proposal-private-methods)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('g_plane = chinese');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `loc`             | Attach line/column location information to each node |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `jsx`             | Enable React JSX parsing  |\n| `source`          | Set to true to record the source file in every node's `loc` object when the `loc option` is set.  |\n| `experimental`    | Enable experimental features\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `native`          | Enable \"native\" NodeJS / V8 features |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"53c5ee12b087acf828015e2e0b921b4ab00ccb2b","_id":"cherow@1.6.8-dev.20190126","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-faH4nKRtVv0rMKrLa2ogPXRkUSkScAOvQC6eUixBCQeO6AAgQgW1v8RnMfTaFFafnL3BFmNNWf0gY9mWKR90SQ==","shasum":"1b31041e862e164e4681ef8f7f0ee0018d337cc6","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190126.tgz","fileCount":66,"unpackedSize":2053014,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcS6PgCRA9TVsSAnZWagAAnRsP/ApN+XUFG/eyOjo1rmoC\nTak78HSxH5mURvvLpdzblEP6IhEZpIKrGrhiApLKlYSXd2gCIuFbYQxvCY47\neA+FCu82fb0rJA/TRp2qRRNBMF4HJjgsbME9o7mxI/j72cjrqmyQHlwchBtN\nyiiEUelGooNxcBZk0FUFhONvIb5HmUh0Eibkpx6K/GNxO7l+JYNc4l1kP15p\n1NSVTz8aHxR2TF/y7ZjzyiGqW83XWJeowrBMi/qqkwRKdzNHi65i2C8hi7ZX\nWxZpUDjiegBqGJhU9UCA3IWF6rFbQ7At53oEiP30xs3GR+GVgWt6VpbVXP+g\nK5H7/HsBgSi10xr3zyx+15m3cM8jU+JsjTXgRT2gxOP79PZ+pgP8KO1H+BV7\nDZpzbzLNqvmhKkMARDxP3iPhunkBfH2HLgAYySsQTyHWJGKRpiGGWAJPbEkz\nEuWZ75iXCTlEU1/VofuXM8qMAnH7saQbrmA56dTd7fuldn3WUrP+w5g0Oc5r\nWsKRDHMky9oSnwdZdEEo+wqOpuhOzm+igYLa5A6s/CmmiCiSOrIcwKuyz7+p\ngVAdtteC53YbQ/5Q8skCyoCGCpMU6En16EvGDz38KJt/yw8ZXfYJRj/RAdtA\nT50eE8tnaO4atGxH2edeTL17tVtO7YSBpUgawDahjMFaYd+9/oy+9N0tqQfl\nwY3H\r\n=pRWX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFX9nHTg2PeqkkygAHe3RfgqD84zCtCuyLjAvu8ukyDmAiBkCvBaAMHpVQn71qlO77Qzf+V7Q5lBvv9FV3MPLEUeNA=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190126_1548461023593_0.5507259433493497"},"_hasShrinkwrap":false},"1.6.8-dev.20190127":{"name":"cherow","version":"1.6.8-dev.20190127","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support for all stage 3 proposals via option.\n* JSX support via option.\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~26 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~70 KB minified (*18 kb smaller than Acorn*)\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [Private methods and getter/setters for JavaScript classes](https://github.com/tc39/proposal-private-methods)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('g_plane = chinese');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `loc`             | Attach line/column location information to each node |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `jsx`             | Enable React JSX parsing  |\n| `source`          | Set to true to record the source file in every node's `loc` object when the `loc option` is set.  |\n| `experimental`    | Enable experimental features\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `native`          | Enable \"native\" NodeJS / V8 features |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"6a5358066bac70ba6b29cbc043e5df73783d1a43","_id":"cherow@1.6.8-dev.20190127","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-SQaTIQKgstbC1FBtnVpFZQN803W31UJ1NDm6FuhUUP94gezWf5US5Wao4TVec95SwqV7N3Zeq13qC7xk3FFa8A==","shasum":"13d6e599bf3ebc3fd163729a0ef7e3855ab02fc0","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190127.tgz","fileCount":66,"unpackedSize":2057883,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcTPYWCRA9TVsSAnZWagAAw8YP/io0caW/tAsjAWu9Snv7\ntLb+x0zpdPdovDbchv2eMz3z376sk0xxCzKHuz+RXfBvDMEOnmdUaLK7X6V9\njdhON+Cshj6bPBB92pG8EotFx/+8v8aPo60fPSqCQHBldiEskfpvOUF1mGm9\nBdrV3Q4/jtOW7l/fHXMuZGhXR2WIHCZ07NVrWDs3/d8lDY+S+TaOxMoivLhK\nIgjtX/EvHjbi9PHUV/eDoGHhhEKGtRTLFckzx7RENdM38BOOVIMuGETMdM3S\nmqG0bkyvL//prNNuREpiHS7pOBaQejxriBG6ALI21GFIMzzTy3/GLjC4BQop\nJcXQQISpQ03UljA9hO2S6CAAyQni/D7LilkuwbBMGU02n4aY+tDOgKzxmpGX\nEINJDG4o1ZlNHK2Pc9wg8YSYy4YTnxWWBPI0pMEmek1ZfLgr8TteArwUuTLI\nr3+heXn6RUhUUn4r52cGfI972KZ8hkDF+7lPHcsIUk2imKjKsoT8cJlDx78U\nGxJvlfapaQNZnVlQjrLaHJIjJcG/eyPpeOFBDe/5b8E1om09RPbCbZb4fbAi\nBvE2Rp9j7fOOWsAR1fsDaKF3Ee3dVe5fAJRup21g+PkBSN2faE11rBz38w/8\nCgS0ZPDFjH0NXoYDLD16SS4vIqYAotoPBKKmc+UhdaPWFlVNS7Yv8cyZAj4Z\ncS2w\r\n=k5+/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFDU78mzsdv6hVpZUz2wS8DltbJA9x5YSx2zOLZy77sCAiEAuy9uQtuJNZWubDxqvJBeQVDJ/81V5qO2P8RDwt9/KBU="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190127_1548547606151_0.5776507194397302"},"_hasShrinkwrap":false},"1.6.8-dev.20190128":{"name":"cherow","version":"1.6.8-dev.20190128","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support for all stage 3 proposals via option.\n* JSX support via option.\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~26 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~70 KB minified (*18 kb smaller than Acorn*)\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [Private methods and getter/setters for JavaScript classes](https://github.com/tc39/proposal-private-methods)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('g_plane = chinese');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `loc`             | Attach line/column location information to each node |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `jsx`             | Enable React JSX parsing  |\n| `source`          | Set to true to record the source file in every node's `loc` object when the `loc option` is set.  |\n| `experimental`    | Enable experimental features\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `native`          | Enable \"native\" NodeJS / V8 features |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"5e958a78cc1454745a92230e4750ba03136a82fc","_id":"cherow@1.6.8-dev.20190128","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-Ie3EvF6t3SDxX6Z6horRZ1lge6u/iccrUfbxMltG8Y33VcC4KI/Z3FACOE4Tj8btTBHlXUmmfRf12aiAcYkFBQ==","shasum":"5e627a67aa33a04263330cc36979beba6f3a183e","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190128.tgz","fileCount":66,"unpackedSize":2111301,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcTkf8CRA9TVsSAnZWagAAbAkQAItfRGY82PFw9adaLOmg\nziboF9TfWyezKJxi6H40JMHWKDzgZ8ZzqdEvKgxFDzi4Ts1SeJ8sdTbeyPyK\nlwG/ZwuNm8ngObJbhF+SteBoDqMVDlYXyr41/JvEleylFSUwX0GmEqyWBqN+\nnl7zq/dW8cbxyXsYkyZEYSQPsjCX5D5BdvlFNGR/Yb52qsJPFdMuPzvPb55p\nSY0uqk4C0OQozbza4W4tKaumbXCmG1rUlC4d6EeeVsLEKFouBIMQTFu9Z0nI\nSCfjhTCeSLOtW3VzvF4MiLn9GjgraOpAYLZnZMaloNihMLHLTIUKrZYKkanO\nDY5K40Bifc1Jtq38oNHrIL25KWymolUsAldcCgZBThughGVHaSI8CGryHCCk\nS7kQpnWbjW+4mikHp5HbRGG9JfCgHEkkijeFNLYXjV0qbMc8ygKdxgspAyjr\noa8jCkfyoaLTk8/FRd97JKN1fsQPIaaZfXKIYEfqt3oqD4d93eKHp++fiYrG\nX2IPKmFO7w2vgRCxc/OJ1Hidf1nBM7mNwCtssRUazhOMRRKJMMl7M9fPuEQM\n4K+2YHm4z25D/duTrSro9rMxXWvGxAIluBSA7PYF0Yt8Fnp0m4prUu50mESQ\nDgY+IcHhy9Pd9Pof0r5JTugIA9g2Ge5zlP+UIvbjdRjc+B0N2lHaltZdZv+P\nT7rt\r\n=2G5R\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBMvQkTP8Fc3PhikTzCD3M51/CA2dk/J9RxofrGicxIGAiAQyoQU8EHl4e93bqMuDl5y3K6eklVSGagEBTICcG1+DA=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190128_1548634108053_0.3421398035247505"},"_hasShrinkwrap":false},"1.6.8-dev.20190129":{"name":"cherow","version":"1.6.8-dev.20190129","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support for all stage 3 proposals via option.\n* JSX support via option.\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~26 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~70 KB minified (*18 kb smaller than Acorn*)\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [Private methods and getter/setters for JavaScript classes](https://github.com/tc39/proposal-private-methods)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('g_plane = chinese');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `loc`             | Attach line/column location information to each node |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `jsx`             | Enable React JSX parsing  |\n| `source`          | Set to true to record the source file in every node's `loc` object when the `loc option` is set.  |\n| `experimental`    | Enable experimental features\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `native`          | Enable \"native\" NodeJS / V8 features |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"4a68ace7618678355084f305a608f19d99da8c85","_id":"cherow@1.6.8-dev.20190129","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-FKwLC7+VxNJnufQh3KbPDLRa08xn1kJ8hLsVg2w/4C8plq2w8g1BQF0saQq0yXSizerD7Yw9RqTogmbZ5m+big==","shasum":"0c6f7bd4da26edc3e4e021f30cdcca8ce2492ca9","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190129.tgz","fileCount":66,"unpackedSize":2186238,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcT5h/CRA9TVsSAnZWagAA4pwQAIeE5DqLNlqOwluGXmqH\nHfIqDEVoJAzgJQTWbGcJmJ3F6S5p1CSfUVv9J7jD8GUB9ZJLfImlVQQwFCy6\nGwbxOkB8og3WxTTArfvonYIPyLklewQdEinJOjYx75FMSBivViLgx6Ar1Y4A\n8e6p4Q1h88F5GUsqmsOgKc8nWCJl2tKmeSAVCColDaVMF8g0fJOVATdfuiFD\n+ZdI6c9cDKIg+iyyeGIr9ek6dGr6RuxRD6Khap1r2b5uxpTX9sLDi97xdRjc\nzWeZAQJZAWYm/5/AP2i/j/Djqy4hXIGe+eNf9ghYT1l7Y71y0RAq7j76h6ea\nqPoE+gC08vdJxUvRp+duKS4vILv8sBxVIeaX2bzcw23phVD48YVlMv0Cjuvz\nYLwEtxBtYgEaGQrdFCvQOnbd0990TS91ajOZ3L3aEHnb+rcVts9xFNHHXXkT\nhUMIjuyDD9mBQdfqz3Lm/MiLmEAoHspyFuJyqaOjAJ81uudpDh/ETlbvTP0+\n2WDqHFsDGgsSsoEauIAxLpqh9sIeNCz6WNuaRcUVcjnzidLQ5G2q9+VOa0I4\nGdUPzZ+ohFTdoz4krwapismNygzR71nlJ+qKfntfIaV9B7pw3rohx0x6n4zY\n7VJEtRS8ZJFz+ez2bFTi4LvRghIxGWZLHjU+q8JM26J4oIbqiJGu8tN3rqHz\nuAWt\r\n=xbK0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDEElOlrfWtJ/wvAMd6Nm/H063GSUCxMVyBk1S7jGCb0AIgf8dFwbeHkbKPItP/oyQtBDC3tgN8QLYWWdJqYDDAWjc="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190129_1548720254566_0.7465346361143579"},"_hasShrinkwrap":false},"1.6.8-dev.20190130":{"name":"cherow","version":"1.6.8-dev.20190130","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support for all stage 3 proposals via option.\n* JSX support via option.\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~26 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~70 KB minified (*18 kb smaller than Acorn*)\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [Private methods and getter/setters for JavaScript classes](https://github.com/tc39/proposal-private-methods)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('g_plane = chinese');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `loc`             | Attach line/column location information to each node |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `jsx`             | Enable React JSX parsing  |\n| `source`          | Set to true to record the source file in every node's `loc` object when the `loc option` is set.  |\n| `experimental`    | Enable experimental features\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `native`          | Enable \"native\" NodeJS / V8 features |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"f40c3f9730ddb7fe6e9cd404ca37c4791699a70e","_id":"cherow@1.6.8-dev.20190130","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-57z6E9nAsacNG8/eSidw2AYf4/gA3alfOdCMbIa60Hm9e/kexzBFfI/KnxCdxXP9RNKYOMzF1YQYYIAylV+q5w==","shasum":"3e30a626890b64357de69b7ee63f41889088f0f3","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190130.tgz","fileCount":66,"unpackedSize":2232238,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcUOnhCRA9TVsSAnZWagAAsfgP/1qUz6H7+hhNxO5zixh8\nX9Gyrr+D9ikSwSz9WcBm+9qaJ8p10gNG/l7bU/b+rBVNRBANmqi7XjlkpVPG\n3nTg9+nkBfMhi7N3r+AnKf40OKzPBISfkZztFLJkCwqy9F+ARRc6Yr18zDbW\ne4AyAN75QXGBpJ4oTKjvRHWzuLYclscpIzJD1RrA3aFvqr2y1PDJqHJ4pwRn\ndGeNo5uuuDTWPnUW7VbP4omylfi+9juNSTMKIX1V/+6RWUjwACX8RAYPvz/I\n85gUvGO2mw9XfM9FbF6NaC55R0F2pOzxNvRH53FhNtaDf2+6o52MNLZ2cexR\n7mnzm1vB67zleGtU348bu3D373eAa3fG/Q72MDlJPIDbdUNcrUt9tO001eeO\n+ktsgH8a1Dk00hdPR0ZwavYU7Yz438smbMu3rjhbveUnem+y2ynAJVEpwtl7\nzX9HCAmUwvChvOabfIv2I3Z/6YhDXjyA4kDAKF86Am00mVSMuDrjtpY3Et4q\nEEW0QKyeZsAvgVEvVAS+mzRZhNKt5z22Wa+iKK0VErK4DOc1G1jE3HfyvIMy\nda7Eoxl92SfzBz+F3z8Sxt+6O3cvA0T2q+If0eYkciH+Iw52xyI3/e9oWgaP\nCg369e0Wte3OJDKBeUO40FuNFMnjiKe7XokcFTOFl8ZybPch/lnsgGcQ8qD2\nEmnK\r\n=q8Sh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHTl9XYGgRAuR9TzrVVNySJRna1aRGBWf8+c/dTx750tAiBL4HeiSC67eZ6mfIeUY1KDjocJHeN2BM2mkndYCHgatw=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190130_1548806624875_0.5696552120424618"},"_hasShrinkwrap":false},"1.6.8-dev.20190131":{"name":"cherow","version":"1.6.8-dev.20190131","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n**Work in progress**\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support for all stage 3 proposals via option.\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~24 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified (*17 kb smaller than Acorn*)\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('g_plane = chinese');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpressions('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n      body: {\n        end: 3,\n        name: 'foo',\n        start: 0,\n        type: 'Identifier'\n      },\n      end: 3,\n      sourceType: 'script',\n      start: 0,\n      type: 'Program'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"db780f220db9c851743f01a75ebb363175649250","_id":"cherow@1.6.8-dev.20190131","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-Rzn9YF6UTG1aoiqxK7k7Bf13cF9Kg96UrqpcQq6A/Pe3c3dQUSaJ9VLDcTjGddHAhGOOGdsdHn2Q5YywE9Xtag==","shasum":"824aac317934e868d9d2bda8df66038ce51b373c","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190131.tgz","fileCount":81,"unpackedSize":2261775,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcUjuMCRA9TVsSAnZWagAAP4gQAJLP3yeq69JJwY8Skk9l\n/R4jfr04ZsXa+ejmkG+m278m/icZ6rcdAL/Ji8q/FXZngNDkmkLCueQrSSyE\nHoTROBZgmsAS59D99lkI8v//00RnfHrxXeyS9fahChGRvIZikv+9dlIlpHEO\niTF/Fdm0Da74Z7/Hty8/hsMQ0Ajoq59SIrv88pBb5AzIurRxne5UzOUysupl\nvJfXYliZWmtrVFXYYN9O5D3mK/dMoXldA2eTlBmjIavn2xwaWQeEeHcGQZiw\nOlNrcImXWjq2p9p+hhVdUnQSGn2CM1fkKMmG+AkdS3MHzzojiNOaDwV6ud/Z\n+0gcRX/BTFyIEqC46Znu+RrEWGhvkJHxM3KWN9nG8BSjxejTap8QoqgtudY+\nS9zqHqeWTG9rwSv6UZQ+q5U9nAqCyrtGDMpb/rhSCSMhrztPo3mcqn+tKyQv\ndRUeGPB8RXS4NgJ7R3m3hmj7+ls/+qGESZeBTR6yr66LQMHfdIdOyims587r\nDt1H4pEvp9uRufhYhyM0tawATV+KqK7m/Pv9dm8BKw3elq0I0ubARaDS2Hfh\nqjee4p0YHlWu2H4lH1YRk0h6GTYFz4bjjMv70mUkKKyIP6t3zMCWB1KZ+3w7\nX/eRc8882BODioQtZU89ixPnwdqLRavixYMb3umi326dbfIl8O1LD2sTlqIo\nAtjb\r\n=wC9G\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBuTgN2niAvrrwYLXUB7uVM6A8k+k42C17wvZkVpO2tkAiB1+qN3CtQGIW4XlHyBF3u+EDMZhFIktiyFA2Pg0NrYRw=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190131_1548893067722_0.31363769493106197"},"_hasShrinkwrap":false},"1.6.8-dev.20190201":{"name":"cherow","version":"1.6.8-dev.20190201","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n**Work in progress**\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support for all stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~24 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified (*17 kb smaller than Acorn*)\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('g_plane = chinese');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpressions('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n      body: {\n        end: 3,\n        name: 'foo',\n        start: 0,\n        type: 'Identifier'\n      },\n      end: 3,\n      sourceType: 'script',\n      start: 0,\n      type: 'Program'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"710ea9dd684d69a4faf2a6c195590fecf4f7543e","_id":"cherow@1.6.8-dev.20190201","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-Isc5v9/jX2iuWpBOT4alLP9FEh2Pr0v+6o80ZAXgyK+F+TWmJ3AYmxntgEi+YbkyQbIJJLo3wrwPE7kv8OsprQ==","shasum":"65c31bd1b531bcea9ed127f02d529cc25b95bc73","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190201.tgz","fileCount":84,"unpackedSize":2263150,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcU4zuCRA9TVsSAnZWagAAgMEP/jU+OvqpOdDfVGaVSUHY\n8T9ScLatpHR/Azugy/IPw0OxHD6evsycqbiq9+QQH9rS7Pcsz/F4iqPLCmRY\ntLeRRcd9w6qb4sl9OBneSH8A0SJhf/NfSxlncNQTPKh1wzTseYQyKtO02M7Z\nb67XaKncpkPGbPnw7euu5PN1jcjdhACfSXjjCGG2F1pqPygsYbes55Eg0tMt\nIr11FrLyztI8IjSjjBtA13QXO4ujA7SvV5Lt7fOO/oAFuDbSKOqEbwwOZbr2\n+hoWelLXmsJ1fIlZdQp5ATBkJ8qnySdwoM0YVSRz8B2gxSEU6Ug7wg62b2tZ\nVus5n2lc/S/sfIs0u1PXYl2Ju2NxMjAZu+ctSnrzWvM9nOgwML+aWjdYQkt1\nErkVAsUm7V2IohsmXCGpSNbWTPPhcqQOkA0gKpLVUdZyLUmeDnfTfnLinq2d\nVOJa8Ml23KNP8ozDhUdGawlu9A5J66PlT3t2sbnvixxtdMNMZRixP7z//wg8\nX95BOla2OBsOwBlZ5sAyU5/KcXRHIMEJSqeDrdHKINnLiSb+EqFLzDrDTAwc\nEE0I5jwNdElSLp9M6tLBlXCEwsN6bpoSHdW0pVnD6CCsAtr7ITqqWiHWzTSf\nF8pWAskvdgHMY4fJr9I3VpmJCGytxGEsUgwZsq2Z7O7NgJMEcz+jwrlVH2cj\nV7/Y\r\n=8PpK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCxgQihn+GoKbSXAwVEy1pxDTYfDeXHBPY8IDM9nEfG/wIgQ+ebestED/qp6DTPh/nsZ/F+Np0e1dp+kXozG2WaaNU="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190201_1548979437567_0.9599397030012415"},"_hasShrinkwrap":false},"1.6.8-dev.20190202":{"name":"cherow","version":"1.6.8-dev.20190202","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n**Work in progress**\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support for all stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~24 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('g_plane = chinese');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpressions('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n      body: {\n        end: 3,\n        name: 'foo',\n        start: 0,\n        type: 'Identifier'\n      },\n      end: 3,\n      sourceType: 'script',\n      start: 0,\n      type: 'Program'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"006a884eff3073d2263350e639e9cf13e70e2dfc","_id":"cherow@1.6.8-dev.20190202","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-UfqmP6HHrgeU9WDgmUsQBIqb+kQgwLqsr7VEii2gcq7rAsWJjFMiOLhFdOG3yRQ2/YYEeaIm3xhlkUk18cAA7g==","shasum":"b1c6d30abf26572d779141ef65c853ad8e553815","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190202.tgz","fileCount":84,"unpackedSize":2251939,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcVN5NCRA9TVsSAnZWagAAJo0QAJa+haur9P839qnN40tC\n+Mji9cOB57a5CuCjImt9ZoHr9G3QovZJRMO9Btl7CISF9wpJFsSTOte1RE4O\nPSEmMMQeVoM6h9LBXY95bLcERlSF51yX/TXld8YMf+/r8NA1MwjrvgZ15MM3\nUFv55MDm1jgPc8rmRcqhumBdZTzey0AGYpWDniiHOOiI/b5AcbsptMkQgOrL\n/XzEqXLFLFopCBMaGgQs+pZNoREw69CBqEe1evyhAYjRvRVEr43JyxXlcjnj\nVdxnv/a0auCK2JS6BjUyH07NmeTHf/puMMQI7EpGbspheTJUrC+M2VfdoN5c\n3E63Mq4eFbMU9nFZCjXSoIAZ+yxdkCIeXvjGKKq3UU6vk9/EeYwVo3pKXgg9\nV5DmWq8ldc/Fc87A+uogtclWCVOOHjv689IEJG9d4nORSaE4p4H9735MdJaP\nLXedMRJfn9EiOS77vYzyhVF94FAvHEoe278O4s6Q3BivdJPyFoI5bodqhvBO\ntgHrbRz1YyEhDGARa5V09S5vRi2SKWYhzJnOoyp/Oi1m8CqISEjbZmver+ct\nzwVHzHxLKxzWPoDF8mC59uqdsGFDstwzxiE5BlaciVfKh0wFL1HmTm2xR23e\nBBQU/gryrPAeaXSfvOjYvxUBXHubr/tUM+0l4GBtu1pPCF9YO4qy5G8e7CUE\np72J\r\n=THav\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDalLpDKDZhH59nn2nRp2DtnfzWLOGJ4Uaor6posmKdOgIhAKtEUMzUmA0yYMbV8b/7WLIl9gDPawjyqy87R/A1w6CG"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190202_1549065804486_0.038508266824150095"},"_hasShrinkwrap":false},"1.6.8-dev.20190203":{"name":"cherow","version":"1.6.8-dev.20190203","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n**Work in progress**\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support for all stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~24 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('g_plane = chinese');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpressions('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n      body: {\n        end: 3,\n        name: 'foo',\n        start: 0,\n        type: 'Identifier'\n      },\n      end: 3,\n      sourceType: 'script',\n      start: 0,\n      type: 'Program'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"250890a3b18bde496d19420b8a89a3296019db56","_id":"cherow@1.6.8-dev.20190203","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-EHMxViUT9uxrIzh32RbCiiTUU9yzQpUbKUtX99pVDtuXPokpfbFyjGth/uwUu9Tq7J87LHo6r+mavadERRo2dg==","shasum":"378c492cbb70ccdaccc4f6612bd71675ad81e9ae","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190203.tgz","fileCount":84,"unpackedSize":2329684,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcVjBgCRA9TVsSAnZWagAAVe4P/3a/sJDoddFhWW1x0KZ4\njic/2XlxaEs1NbUCad8rjbYqWE5uDq2agtakQMZ2uRJ0MtWPJbNvlwY6xN3Y\nxXwBtV/M91AMmdLILM6ByE6c4RxzMX52u+eVN5pazVv1XmaDXWKwMwojjG3/\nMA7uiD//cd9uP206JjuWp0ybRg3MP7D9xYggrwEt3SQYkyCjszZgVKUTsKP2\nMal9zDV33mF1WI+kjz2mvQjP/jJ+SSfw8WbgQOuUpJWvro1VRQkFKw38w5U3\naS1uHirxD14MRT07NiAOZLFi0WS3/4bkn/ljvdduDw/eltbQVirN/CUqHId4\nvcQfgEbMGuieQ8uuktUiRwDTSQ45fT3ceyHxA4s/mr6nWfX4YqjsiSIq+5ig\nZunoNw/vc0WN6iKT+QQcsSi+WlbaqpfT/JZhYhrHDgNIaeuOt7ftt3Wyh1V1\nDVIVf2KqX3I0jiFR5Yepn/eEpHA2FjdoB7mbKuyNQJYnl6X4zg8nDNw34/CW\nVdMEu8CzOPFqFJhUPUkdT5Vz+lDXnyUBnSzPczMfLITsXhzcneyspQXJ1K/U\nGT1PFy1ui+UnLX7Szgbn0wSY7aS9ruQ8LBoOBjuAqsOP9+K0H1pH+ZIK3kp3\nYX4dl72GM5iQHsShHLBP3q99E6DkibfAA+TKLK7PupmvmP/a492PKBvaEg9g\nqm0Y\r\n=Qp62\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEMqjlfUp9Nv+dZzQY3pzquml7c7r7GU5LGURcCmqr3aAiEAh13v8bukjmsAo86jlcAG+ovXwtlA9ztfYzW1IYg0fII="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190203_1549152351530_0.5333488755907538"},"_hasShrinkwrap":false},"1.6.8-dev.20190204":{"name":"cherow","version":"1.6.8-dev.20190204","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n**Work in progress**\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support for all stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~24 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpressions('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n      body: {\n        end: 3,\n        name: 'foo',\n        start: 0,\n        type: 'Identifier'\n      },\n      end: 3,\n      sourceType: 'script',\n      start: 0,\n      type: 'Program'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"e2b3791a83ccb1a9fb7c53f8dbe22b2215a1586f","_id":"cherow@1.6.8-dev.20190204","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-T/Ky7OnbTQnBYWbHklbY/eCrMig+NMirwzkoQs9iO0uGDXpmqwTsSo5ZHGvUXS5UP6tS5zwvxu16a9Yj63TUgA==","shasum":"df9f0482b6b0139ee00da838b8c34e89aae35e5e","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190204.tgz","fileCount":84,"unpackedSize":2339535,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcV4GVCRA9TVsSAnZWagAAa5kQAJj/IiR2EUnSGShZeI4o\nieuJY+nsqFRQdTHCUG6W+cbpaVx6zTHkzrywSSearQgrXf/NFoYCaWmhv3M7\nvuYyRo8HcuATC3gahY+F839PJDP2n7UiZRyOSktsBbavxdXIJWgEVjLvlTCk\nvNkTEW8ORzXDyCwO9L2IBeQMvtCmbIQO8TwD5ykF5swx3A3J+m8PNaEAC7tL\ntHEKgfAdzwMN3ftk7bcHjx+GpUIw89iBVVn9ohU1DbSqlO+l3rerOU+XekqD\nE8R8nhXklBL0j/+w6kHgoVOHyg96G2tFLcsU/Rhx824fALblL3XVhY/Bycty\ntC/45keRIVkCzERSDD32jZo0DvUXJHgxovRcigkoYY8BXKZOxwUEWBLN+Pxa\nugWMi2GnEIvSx+YRKb5FPq48nHSA8+L3Z80wx4mnRbVWwWou0CK/HbdfviUR\n3qWMZ6sOcofhoq65UxAHqT1Nx7kjvX01xu/9At7Ixcw2MqTff5M/QAZupJOh\nn8TeSevkcLGr/Km8rvhu7UuCpJwfO73bdM1YTaj7ImQ7hy4M/09TVbZwItDH\nLGpr82IJvztVOU3dwBxAdXD5R2n9Pzy/1cMiK8SZim9t5DnETQ5FOaYe6C1y\nImKgx1o93WhLhwaJeSIosIEbkTN0u4t6XIOvV5ecc1nbSauKZj/GtDW5q5ZG\nK38Q\r\n=1D42\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGB/nS7A9ZwLdoSVT3OlcCBZGjjSjSMnexUyfpKpAhdIAiARAAtznka3xxwu6eq6Y7Fya+vzn1/utfHNfwfhyHv5ug=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190204_1549238676838_0.25359767605895267"},"_hasShrinkwrap":false},"1.6.8-dev.20190205":{"name":"cherow","version":"1.6.8-dev.20190205","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n**Work in progress**\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support for all stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~24 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"59ecc5468f3abf3b0b0247a16d11db974e3082f0","_id":"cherow@1.6.8-dev.20190205","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-TubVsOHsolIMdAqy1o2kGeYAxqDXbH1T63bFxD3NpM4qtcAiah58hiQu3hrLE9HQf1S/2kXNXhVGtIkXYhixDA==","shasum":"c028a8420cc2c8828ade3f9257716101c5860d6d","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190205.tgz","fileCount":84,"unpackedSize":2342387,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcWNLwCRA9TVsSAnZWagAAwb0P/2FBG9R2TLUUJbXier98\nsGwZ2q8bc9ND+iteDQZk9mrVCZZtG9dSp9qhh4g9ipsAav9YNAZQk6rL9z+Q\n526oXGazeFXtSnUT2gwBWdYP2G1u2Ylulo5xFiamMCHuej+VugbDBq+h87hV\n9eaetuufEbcryjAz1PYbmosWb5lEPGUufbZY7231HW2WR28foSb2js644wq+\nemy0rLQYlrrVP6yClSX0SgSfK6hwbx2oq2Kn9UvgVq/Uw97qp2/AzTGK7G98\n64vIl9c4+IuoJW029hKMmT9bTx70f3v5LBAPYZoUc68XO3h+qVVvjZVb0Z3g\nYW1t1GjxtDYF50BGfvlZRiRpLu5XyYhdkcp25iZ+tZtaQc+YjyhnZ2FdMiuS\n0aAd8oIpRdFDoHqnn3L+UVtRl5cwjX6DHzXHtpqzbuG7OUH6ENf9yu7w2Ik7\nr017s4LlMbzfvSQtGy5tsB6ud1y5PtCseQWvZVS9p3Yg/5gcfZ4I0eKWOvQP\nlFTt4dVhF/86c9EC6dNDtpLdupT2/stWVlb756FzZfoVM2DDTMfXiJkQaP+u\nlMZpaIHEhPqvvz6VD1C7QrLBwnYSPd8kK/H0cI0QmLmf+k2ImggwGaqsKpGS\n6GMl05rwHCEJ/pAcgtb2FCkG1i/7b+7NFIf5LRTOeyHBma+U4BTUygeSBYsa\n8ZpQ\r\n=l2aN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICFcv1mDZ4MWQZigYaMJqrBJ9jxJff56qgfE+OYILBd9AiEA8v8UtwIrIFlxtumNW/2gmJqXpSpa+9OTqpayA0cxbNM="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190205_1549325039645_0.689284638886885"},"_hasShrinkwrap":false},"1.6.8-dev.20190206":{"name":"cherow","version":"1.6.8-dev.20190206","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"4fd771213cd531ee15162d97a11d63cc961cfb94","_id":"cherow@1.6.8-dev.20190206","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-4aXTrvTnq98lmBnxa5v6WYMRBfUmtoKu07EJenRSvEHzjs9nDMmQ1VdxlcQgUJaD2D9tUdSstgK0R7hwSUdlmQ==","shasum":"fe02e1867c7a42cbe78d57c3bd27087cedf4a427","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190206.tgz","fileCount":84,"unpackedSize":2346404,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcWiSWCRA9TVsSAnZWagAArHQQAJs65yYUb2FO9BPITv/o\nARkfagtMgb+pnR6eFwuvpL2rBElsLdTj6bwt0KRUqDbJlhWuxRxJjOMSR9Nk\nIe9VyyEryuG9/GSJmbNHR0KGHIbag1Ox5EV1pntjEJ/LhuChGMy8VbN3v2NU\n+52cQ1cJ0q1DURxwwhRIxYQifVpbnh/YSoSPLO5E6O07sAxQ+3/HEuIS7nt9\nrQ9rx0EB33Ln4TTdY9sRg91iLkcetw8ly91bAVzSgI7cdLlPeP906XtM7+Ad\ng4iqAhWxor12G9hZThiIwV2jOGDaBghNXr2jdie5JVnqJz96u3eit0uo72Cj\npDYiHdHJ9nJijW0HQMbW3b33JKhb9hxVbybbwZfEahKzl7Hp5bHmTy1CUq7P\nCJPynUv+lPg5aEsrz3EhY0U/jdkWDvLRc0VSka9hjvTl9HgIpW1uPXC8puEJ\nJJqH+Q7C5ifS1ckJX/kyVxEYJAyK7hvIWF4p9iqOI0NYjlv6x2AEkcjV1oCL\nW/q+m0chkuGXijnb8RjO5+MW4gGd6iwxCHVzB82R7pLUQxF8JpMR0Mgs250g\nrzyxpmzrqrXjp2kK9gJgVExJqwFoh7NiAHKoF4WyuvXcMxR8kSv4LI7InVkR\nrf1AWbLBB/ef4L8EBPzfKOVInPyOPDtVZz9UlnLpJ4UT5n3DkMwFwl5nnrH9\nAHLe\r\n=LrD5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCuhebjKYKsbVuAiNRUTu92QFU4fqQBPNiL82t1jzB8ewIgFN/paDDVnVGDDCQ/5jYFsr/USigknX9YWF0VtGH6mXo="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190206_1549411477741_0.6788657182121436"},"_hasShrinkwrap":false},"1.6.8-dev.20190207":{"name":"cherow","version":"1.6.8-dev.20190207","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"ad7b89dca45829bb21a51b8325b77b2ff8f6c6d2","_id":"cherow@1.6.8-dev.20190207","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-RGQcj2JrGQFqPP6Z4CFxcEsw4ZENErXYoXON5o4AGovK7pJskQ+438UGtFx7aHnv+4hIgl4gm+MIARUPO5O6kg==","shasum":"0e9305ada69479cf8ce0d02c103e654a9f7d8e0c","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190207.tgz","fileCount":84,"unpackedSize":2346404,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcW3YnCRA9TVsSAnZWagAAa60P/i3TMwVkUIJzzGB2lPif\nKLMPgwzTc5ZuH8zw+0gowFdgWY5LLUNZGW95CF+HMV+kHNofr9npcduN8cT8\nbKlR2DcMK3QRGl4PwGMuj6E7yTnfxPCpy3iTlex5/MmM4wu0bHOVjdvSRf6v\nlD023Qh3EUHJxk/ZuMtERqd3/E0C6lwZuz3RqZ0z11Jrn/8NAMd9tMvv5eaK\nZkyd5uo9Jh/6miCPY5GNqsVzERla43itXV0Dv/RP5ENeVvxi45s3Zt/+wh4C\nSoWiwUof/rTp5i1YlTpaYregXPXpO6Vanoxh8QJT42DkQFW4p+RCcT00QhWX\n0DVI+pnn60Kxz6KFmfSC7GZ/W+L8+bEL8wMhev8S3j+ZO8CiKjdC2X4FcZKf\n2WSXlL0A7TXGXXqoiV1z+hKg01zDgHciA1pthTJfqznbgzWs4eNLVwBr2EDI\nl/07CRXe0eTwYcLOp8RE8AFMVtn35r7VT/4L54lU/rmo9hsPj5F4MixEjV+y\n5OSeUOTRXOG/9q3vr7XlehMimVF0pd7IyjrSYZfq1mIwOmnJ1kRPTLA7YlpW\nSRS/VyDB5XDsaXKRIVlsz/S3mveRPKPrL1Kq2CEcxdrJ6PHpgh/nKXmz2tm3\n7K4c9JsPoK1l2Ut/KCIy34VxlPI2y1A5CGEaYozK0C2WEiuiUJGRPx7NJQ0x\n9gRd\r\n=dw8E\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC12IIPxwdqZDpEKUdrStBeHsCrLKDmnVIhn7XpwTshqAIhAPemBKjDJJHLIX7mfL1fK4Wpavoq95ac3dWdTY80mL10"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190207_1549497894572_0.8142791403007004"},"_hasShrinkwrap":false},"1.6.8-dev.20190208":{"name":"cherow","version":"1.6.8-dev.20190208","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"ad2124a8e4a90b6c1b93ca6b6c586ab8df60487f","_id":"cherow@1.6.8-dev.20190208","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-f/lMKshCXmCHsrGL7povxggQTM7kVtcPt9ymFF6tzPvXXF4GOweO0Hk+WN1V5GwDfx5bwJOhHJ/rSYwOpgw5HA==","shasum":"6cfd063ba7af38acc30bd6b645d1485e358ee2f7","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190208.tgz","fileCount":84,"unpackedSize":2345917,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcXMdtCRA9TVsSAnZWagAAd9AP/jKurJBDBnno5qAoA3su\n2F5wytIp8yh+sSKOnvKpyEpGbz/YYSU0bDXY0uwY/0i1MSbuvL6BWo1BBEOW\nH6sh8Bl1Yc5PIHsx6gLu6TDB4Yoov3d/hryufIirfgJViWwGT5JE58tgMklM\nqxtcOaonkbVj0NOr0OOSfrhM78HI0nCSYceFrHgmUkw+ytbq8wU2QlP6aG1t\nxUOFr9bhZZkrKsWQgTr2tbYA2aLgYJgPc8sHN5USSMnLFQ/jeUVs0hFcsTKi\n5JZx/Ux2HIrQMjk1jrz55h83jAFUJHLVjkTAjgTkpCtDs2XJdetTON0dwTcd\nvnpz/jQo6P3IcpoUhStI2H3ZB+w9wdQxEdK1bMemMAQxk2LNqqlqSJvmGJQW\nWGyHtKJ3gFsXkUHhgBZajoielXHyHiTw/68pMJsV1TwjKRCec3CaTrHZcyG9\nJNwXhiE+36gSdk7qaNpyY0bF2nDyncjNHFwP8LJWgJb4mFrgt+x1rola5Tqr\nN+90jbuV02NEpj3gjJCYRLnJArwneTIqKdyi1PIkxrNHCAyN1y8jCXoK9R6m\nBRsw0GzjCXrvJGXv9kMi0ZroxS5MKGRhZJysTfMIggk6i6Pd2LtdOwcVPftu\nmP39P88rDPLmCT+it6HzSV31hSTPgMSqJiEJ98wwjm5Y8qO0oDvhZURiDbXo\nYD17\r\n=5kTu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBeGQkmDNWJRubzYdQcc8zH9AMs9qZmFm5Fq9t8ErGyhAiEA4G6DY/tYtuBJcwsPuDbiLNgk5xTUHlHhR507cF2bOtw="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190208_1549584236601_0.9584465893667449"},"_hasShrinkwrap":false},"1.6.8-dev.20190209":{"name":"cherow","version":"1.6.8-dev.20190209","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"3512a9767cfa590ecd9ccc494614cd5dbbf1c538","_id":"cherow@1.6.8-dev.20190209","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-I+4xazMRsQfXAN5Gjam3D8ndVD91Aq88cBnzYQzqchvyBf/FaIVy1XUxD8LLUWkvL2vE86P7pVeAO2G5pUR2pA==","shasum":"4839dd258da712056ad38c5ead53b68b36b9346c","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190209.tgz","fileCount":84,"unpackedSize":2341961,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcXhkFCRA9TVsSAnZWagAA7ykP/3+eA92F/M6mzR9WMxD2\nVR40Vg/rsSlRiFECGis7Cqyo74Zl1j72AHSUdrE4zUqo6A44rwqfnrNOYI8o\nyhlwVgJK3WYapx/bDvaV8Ma+k25x0Swf4aYcYx21JaSbPJ94BgVFKF02fWMa\ndXhhak7hmwLUlt/5vkfpMH2qiq6LMG8PiRu2Ps1CzqbUQMc/kMT9lozt5rsF\ncDiZLQfObYrMaai0vnfuhHC3t97Y6+hfJhwAfUcVO4OwkVvM7gpl9w99FPdK\nKQsfH7e3GOiuZ0XjMTrNgvr4RLK2WSqGJRENYcTd4fu2EkIbiqY0JbrWRl1I\n5ya6Nvk/q6IJXhQv7vT5WF0JXzYilwBQ3OX3OBZQWqjhc60OOWcCvy1H1rDA\nvsTA5MRj5HvJau+xr3HdEwY9E1rnzAht3KQaHyRdg7ClZR3DsYB05HGTp1b6\n6OArY4DdU+bdptPSc8xi+cXYzc8FYT7ZvTyonthts8oVIXOhx77L1NuViyzi\ntnuxkk6K4d6QmhRQeYDex5lmRulZ7Y5HQYBCnTlFslXAH4lgJEizlkbQBWG6\n9JQeckQwwzQNFa6fFKUNNTUtCs/VkPEpUhAOdhqL3GgbrvIP8tt+rcbkhksl\nlY2wYOko0kVmCLhuFS/v5v3R2VCA9fI6IimEbunKbqDgqj7cJ4Q3nBMdSxwh\np7E+\r\n=DuyT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAUZE21r5YuiW5sDOUD6Ch4C0lqEDQ2C6QYnVEFT3lRrAiEAi9Pa6PfVDBATjxDfpBS7Mpmc3lGdubjq0qD9+l+Tpmk="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190209_1549670660494_0.3079925907411454"},"_hasShrinkwrap":false},"1.6.8-dev.20190211":{"name":"cherow","version":"1.6.8-dev.20190211","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"a2ce420d8632c1489523cd3e6f1714ba162e66c0","_id":"cherow@1.6.8-dev.20190211","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-GtwYsg8XbQM6xUv2id+au0w1DbWB9y0sQPBPwTXsh0e4P51JKwS2N5bWuhf3ubE9KLjlRRgcaOJNfjXHUpgBsA==","shasum":"85abe33f3aedb778ea84a46faeed688d5a63ab36","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190211.tgz","fileCount":84,"unpackedSize":2341961,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcYL03CRA9TVsSAnZWagAANFEP/1/fR05e6n+L8r802UTI\nv127gsfeMaDBc2dG3EbcITWjbGNvdjAVaDVbkiKsOqv2U834MU+X0kgeRQf7\nrNhOnJFD/cCs+QkM2wzjzTnShMFsi/38CbynHGKl6wc1WIeYB12tiXE0970x\ncM936kn1eq4Nf5avQ7/edFV6OxdGjJxTdsopDdtvFEU1Fa4nAIMC4phcRi2P\nphfgS/503suPGS6L10msWju3neR+JvjD+dFtSmzo1dnY5vaoa+3SVKnXjxYQ\n4xQh0oF4ClWZCVmfclEh26xmD9NWpS8PRcoUjBGBgQncg3bXiFqGz6AxLqjz\nLbUZIPpdfimEARaX7fjVsi8uhfc6ef9K9aw7sBQBniVRh4+Vgbrh9BfFV5pC\n76BTYRn9hLkOAOG3m8adV1510769/G0O5jmIQ/EYiOnbqk1JgZ8eEWVUiikU\nFxT65ZiRgQhn80BjdHTrW89EcBt8PYsFDnJajEsrnItMJwer6gyX3hZBdWf5\nNEcDzZLow7N2LrsmAlZtIVPwVvqCrAaUKeqcXPQpRizeDmXUkNVaYBoEY1/v\nrkHJEPpl5q0S3XBYdTKGvSGRy4P6xHvJ5a8GXXJoiegZuM07gvB4UtUPRS3v\nJ3C3RdcLDXmQ2kqY2lnlUjCYnwheUfdirzhEohK1Y58tPL53RpaMcbfgw38C\nRa+j\r\n=3TCz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCAIA3fA6bpFzdho5/JLHTgeY/Uv/X97YB5Lnn326WYUgIhAMUPmWgL+ynDjhDOyRjxP1afghvHVs1F0VgQjHYIU9y4"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190211_1549843765783_0.4818181045862904"},"_hasShrinkwrap":false},"1.6.8-dev.20190212":{"name":"cherow","version":"1.6.8-dev.20190212","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"bc8077b7660d28e306e70e4ed00d7e38b1c70feb","_id":"cherow@1.6.8-dev.20190212","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-/AcQXKkR6Cn0AWz2lwx61RS5dUUUgCv98x+ROyor0Gr956cZeQVX0nir5jcnk5xI8T2NQHMsf9iJ/KtWjyP6Kg==","shasum":"66695d43d8ce66fdf38e8bdb5f5aef51aa34292c","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190212.tgz","fileCount":84,"unpackedSize":2341961,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcYg1sCRA9TVsSAnZWagAAQ5sP/3bdhyT7JTBiUWy2dvrx\nCV3zCh8UDDgW6aOwY7AMGEZrAddkF0Cj12/GBPzNrHrFfxA6f0Qui2qO+/QS\nSAcRy71NVaf/zkfiNQEzW8kwCrl7mTJamMnZK+hym1HLcIHGJnPDhFKBldqZ\nxw/NkzsGwja7kkPLPlRvoRr5yhvue9JnGJqbmGiKv8tuXB4KIqw9ZquOmJ0T\nbaNxR3Vgn5Dqaop9r897R0l0DB79u/4boztJfZxoJNLSU1x8VvW0OA3kh0iU\nLg+tWghBPfaUOdA8g0WWn6lKeQZLPxQr7xpeJMv3q+Dr3pnXuEM5YS5FMiV0\n0OqK/vcfnBo7zc4gBt0a4eYKxroze7+aO31mL30YJ+B4Y+f7UThideUKKvDV\n41nvAcWFpdYzNGQCKwwqT4OEJ/6NaRaOjN8eLisRq2BiV2W4PFbaqa1W/arL\nxEQt0q3A4V0nS7eqcUsEcfVafFqeXUdgb7e4aN7ZOmPpHf0olQN9J7sofoyv\nXqPtuvxC4QYqbicXCy2LBakg3izXpR1P41MxPIDykFJxUaIs4nDasd6nszJu\nMc3qxIPPit9dx9l6dUkTCUPUkmSjNyL9FAJq/uA7yQSt8g2ZTSYD3Eweb8gC\nWIMKaZhptajIX7kuTMpGCvfcjEhrCIlLvf+eLRqfoBIlP/bVItb4nwhFuzUV\nanCY\r\n=H6F4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHHseMhC3Fs9+qB/l48Mq0SkdVkwsd/ajUZ2G1BcCGDrAiEA5OqqPMqDZywwOrrCuIJ5luvkGu0nHhxczNh1aHmSI1U="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190212_1549929834434_0.474359471328053"},"_hasShrinkwrap":false},"1.6.8-dev.20190213":{"name":"cherow","version":"1.6.8-dev.20190213","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"27bfd52b48cdd5940e16e03501151b1197dd556d","_id":"cherow@1.6.8-dev.20190213","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-B9b4HQNnq5p/hgMKus965jbbQAFM8a+u6to/VED8tCTtf/uJSQ/ZEqt061Gzqx2JD3YqHAOzVoJb1P4+ajlRtg==","shasum":"6c7b883dc6503590af036b548ee3f421702a1844","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190213.tgz","fileCount":84,"unpackedSize":2341961,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcY17dCRA9TVsSAnZWagAADNIQAILIeF8/E1c3l9nmsPHP\n0fV4a85ixX+oWbylR5AbjvnSlPLMTLI8jnI27zZJHOv15TWRtbragQKu/kmg\nsesFVNhBDOhP8YOp0A6IU8+/1+fht0jZpZxO+tMaJkP9tZ/vkBkj1iOTl4+u\nhflwM55UohTEo38fpGduVX7QtPqgDXTFUxrjZ7IZR9NOdkwu7YlwGGDLiuXf\nhD+sCQRSCzJQhjzfFHSSbxh26UuXowz7qvyyqROmxzIRGmWQEC7yUxasLdUP\nIfWgvvkmC2TjHjWcOsLEZ8n83nThEku802NTUNaCo+OTEElTg+XJWzhQ701G\n4Go6yRMBQiydHioBZjDDY/5SWpOG4haR0hXQAN4epwJRgnAUn/XfRssmxWFy\nI9zeZ/qnBGDzF9WUy4t6Pqn0ZnDEw6GNTzX4eR8rDIjruqyHPNd+tmvO+vLY\n5V+KUqsd1HFpLqxPt25rjH2HdreAsqteLcyLJ0srIhaY61i2uhjWM65AgKlR\nLkhSZtf5N2BVWNyrbUOkGTgDVCBKcfyC8NHPmlagoKbmiJVfbuZMPDAtIyS0\nlDDliIi8qkYIZz2LLIxQ0/QH7seIGOboTXo2Ncz8HaceMYDJnid1psG9xTtg\n9+xX1XAd2C+jyCrhN7sIpwX3N1C40myNQanCXIKJMevjvMfNqdnTAUkFC18K\ntNRP\r\n=RjB+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIQDvJn5zQF+ZtOPkUoeQJAfhyojzcCb8LvklJV1pHwUUqQIff0uxzga769eh1BPM+npL9eQ6sdx/Z+zaykfKlTQNVg=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190213_1550016221004_0.4620230107832881"},"_hasShrinkwrap":false},"1.6.8-dev.20190214":{"name":"cherow","version":"1.6.8-dev.20190214","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"28a2955b1e8e66afe2b9dc3d8a2615576a57aec1","_id":"cherow@1.6.8-dev.20190214","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-IdFDzxOsBtj77UM2zUHISrkHGHz4Yz+Vdj+N/kcM6LFwlK7Bp1N14ot6X92tdHH7UkBpE61n49U2Su3BK9cttQ==","shasum":"c852478aa6891ecb2d2e2c544491c96063be2b1b","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190214.tgz","fileCount":84,"unpackedSize":2341961,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcZLBgCRA9TVsSAnZWagAAxAUP/iNpDRxcDLyhKhyzyKr8\nkf+CpDLYTW8QrZ2IKopl+n+tDSwKPQ7tmksx0IS0cf1gl/cBXxpnx6P5Duou\nvoUXxGqcO+UGaJnkX0swS6r3amzLvyPhbmYv4ocvTG19L2MpJSPnhRrOqnG6\n++riSoKzuRhHxXWU92yarCMZK207qqhoxUavyhr63aQptD25eiFfdjfjqoVE\nx8g7S+1Rb5XPLbsSt+ouzVKTh8j/BhmLuY9Um87j5o3dwp6KpBz0RAHxarcq\nWdP2n3S9H1bMfeDU+q7sCgAhnGfSMYpp0YrBj3fC8pP90W4Bpmiq6x7WdmC+\n9ZmHJQ4RcOYQzkp8PzAFJs/EC1qYr0BqL/Sjhp7ck74eHoUp6pMV5ciXO2bx\nYJgnpIuCyoHjau/iuUlkGCqR7jdjZY4H+iYXl0VyZOu/haalZlOVlD1C8FO9\nGvNyQmaSlSUr/P63yI35FbgDjo3ij9551qmJ33jjZ0ybWKJfzPPPzkfz0h5G\nB8dOeg+0ISQRyQy4Gq64rNlG7GcSt3Mr06l6Yduw4N7ENGxJ3vPVtA1gaOhD\nn4smI8RRfd274dd/CgYGCW3zDjytZvaoTl/X+iUtYa74YWKLryD9RHP9Z/QN\n2CfYQbyb4zOBbRGfHAMscHrV8fHirCOnlHp7LyG/Cj3coGDTC5vMGocwVRwV\nwuVB\r\n=TrSj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDrEN3xyRbE3j2UyeNNQwdWm9tUFhFrOY4cZzFTddXFDwIhAO83THSJhhztnYwF5Dsp1Ug0jBY9BPuBfAN/IOZA5qRm"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190214_1550102623491_0.8454994928579562"},"_hasShrinkwrap":false},"1.6.8-dev.20190215":{"name":"cherow","version":"1.6.8-dev.20190215","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"0c203064edb411f70686a4f95dcf2f667c1b0101","_id":"cherow@1.6.8-dev.20190215","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-26VDzTXB1F2gPym8+677plbRP9COmcv7aiIjuoA6411ySiX36v/AasDyOzWPxz/CrIcAXPS4rqTw+AUYfTtn1A==","shasum":"ec257ae370d961a78ee883f26e4df80f39dd0b31","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190215.tgz","fileCount":84,"unpackedSize":2341961,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcZgJKCRA9TVsSAnZWagAAwfgP+wd8HGN1tNZE2Yq60z0f\nT0xesz6peRf6n/9aPFygfxsGF7jl6w3xs7xaG27on9pMrY8Sxnw06PpAa1ha\nzF5tXfv/YuPnEt43Mvaq6N6IeHsWs0r1GhymOTgdtvRTZPus77Jkn3IvdXll\n5t9Haz2VBnWgtVeNItXNw2C4rAjAttBnb4/KWlLrK4zoWhZ6d3Cvr1UPfXaO\nlO+E3+8dsNhjUv0cazrK+GhedKBUG3kxI7WtXG1vEzn4EpN+hm2SwS11FgzT\nfF92WsYw6YJYm2SX1nYx2HY+/r5XIgmREgMB7AI9XDB2t94fgDzthb3JTsPC\nZCp/Mrcw33bwFFByaBEof+GjWzTdiNp1Yj6/MR3NRVMO4kn97OMhTp0lAWI4\nBC8dIkdASAjLwtceOQv0pOS6CfaehKK1ybpz92XoJBYJEaaVADk2cJ88XvEP\nA2NT7NKLzk8vovnpbHAnGrGQY+sUTB+dA4VbQmSEUL8iA5yGieOxoRJ2o/Qj\n0ka5uIgFDxkyRnmFj1Q4bgwuJ+kZjsJS3Fp02EbiztGY3WwegHRvHEP053re\nfDGtKtxLsyDF77XCHSGSF/KqtSYTboVKR/uOiMGuXV2SjwmLB+4mdwTY3WQu\n0eUW3PF4QD9vt//oaZH3RBXgRPJ8DoFFjuvonFp3ym1UDoFGngFwZJaJ7zbi\nZ3QM\r\n=UMDN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC/6Q56wDADSEyeMWSZH/wbBv5yG4S4uP/WNkBQgcdw1gIgJrgTERueiKMNrTlgDOVlyPIJZ76QkU2D53Rxp2PSf5w="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190215_1550189129836_0.06469141124194167"},"_hasShrinkwrap":false},"1.6.8-dev.20190216":{"name":"cherow","version":"1.6.8-dev.20190216","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"28ff254158cd204ccbd93ad708eb96b66973b899","_id":"cherow@1.6.8-dev.20190216","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-bJqlsm6tl48oWwDPdslm9AOU3TvPgkL5fuejSZR8OOLJ3PAJQdzXLKqR8qt1c+diODc3mqP0x1TFYqMwiEQswg==","shasum":"7933da55404a25e113586881ac363468aa95c4b1","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190216.tgz","fileCount":84,"unpackedSize":2341961,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcZ1NrCRA9TVsSAnZWagAAntIP/jPvW8yr1Jq1RsTF8+vB\nB42FePcH1EV5pI0PNfzY52Poj75DNdrPDwKQU+1RnjfoSvxDc/2Jm6FuXT8g\npQhPmT+yG8MydE1jDF+e3fzIw9qtBtrhilOxnENK6ycJB7Rd2NJEUhri1/Vk\nCHV9OZfm+DgzYr7RCe1WAXFImGIi68k3Kr8gwUvo9M7nEVYNIlECRxJ9vXjW\nX8iZCb9evIfLD0CBGgqjcBFeS88GBudrSaDfNJcr+go80Bt96QSrissmLaYx\n0U/rsfN6zslOLrMCUb3zd1E5c4ZVVb+3D1KGbMe1vgy71gkYkypZYlEE3pQF\nNhNkft9nFdaOl3o0WCjNsy7sMnYiduXFFmqYfdFAGwcoFPJONF1WqzjuQQ0L\nVv6JbX7a+b6JsPKdOvADW0HBk3Jb8qfkEAp9yfWfQNTHLp337V3vteVyhY2z\nhGRVdzwEzsXAc7oP3No0q7CCdIkrW2XxvcPRv/09kwIewoM73olienPyinMU\npDkB36V38XOPXjKPxMF1b4IwZN5cg8RkYafpgK7148u/e8RhNENehYg7mMI1\nFMrSbKeWiZ/VE34FUsQoRez0tYkdcVs9Dnpav0q1a5ftXmyf1khpZLbBLLEt\ntvlFL6boBJD92K29h9C+4FVNxWvtcrJlhowXG3La9ETn4yEK+VVqS2TB4pQx\n8wtR\r\n=k64h\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDpnkmp+bI7fJ76K8eXKxbiD8GbxdPxvLq8oWpaQJti8QIgbWWWGOcJZ/UCFkvnus424GcinVI8qUPP5683T/UjvSg="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190216_1550275434873_0.9516445232377397"},"_hasShrinkwrap":false},"1.6.8-dev.20190217":{"name":"cherow","version":"1.6.8-dev.20190217","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"11ed7d5eb681a4c70a6943e0892d48a4c1e18647","_id":"cherow@1.6.8-dev.20190217","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-vAyYOPXH9TsUcSX9X28UsmYAKCXk/LV0/K/uvaSXQDPblBo+0Q2IYBQM1mcn32At/O5mnkjJARXjebiL9orKTw==","shasum":"fa8ef539673f89c883ae87e8adffe068f28028ae","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190217.tgz","fileCount":84,"unpackedSize":2342013,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcaKV3CRA9TVsSAnZWagAANmsP/AuVnJTpHk+8vIjjAFHp\nd4Zbz574L70q3QCOcfQQBHLexcL0irDLIErBVgnTsi/4KuJvdSNZAMgcMIfm\n1bDxXYJsd5x8OOp+vERZz61vgSH5I2s1NijRNcDmkroBf/XduAFaMoScByx6\n2gBofvuuAEo28y38EEJGnWBnYoiPRxvtoF+ZvPdqLdkSyE8GnIGqTdPhHbG7\nLosRCrdPV8/NFaeVJai08/7aDpcuwUxP7U5/DsQ9he0yWr1UQPZWkmkDKRxJ\nD8tPucTIJCsUDDH3H1Q7t2gy+yJ0KFN4lgb4TjJeIp5Neveq+bmZ7jwb9YA0\nNw2LVScmqNNu9H5ZIuxN97NzraBS/2U3yHOC8XQMhlodPyv4VqX0QwgFgCBl\nVSWPhN/1/gg/2OSK3PVkfBtAy8ziwWSbnspqCULosEWKY5oJ2RMAS2BSYStb\nllMYjdyet7q0K+/0JmyXap07dAAVE9vX45EmvEGrJ/ntLKdVuarynibRp3dg\nneQ4BxFbB8e74R9mIxtvefdySyANli52qE1OOWXlRcq4KrRsNDvAf+c26ijm\noLUN2R6V2XWv0IKQKf/gc9vkkVjOP1KpObaLKaevc0b1zgmZejjKZfUqiYDt\ndEgvu82zyGK0phHsq7TK9TSalQZYNKak/Dm2tA+wOHVKm62pkti5uT1Y4DDa\nBy5O\r\n=5Qch\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICskdXsTz9fYuj5GR4VEMgR5uRV1hkYpbowXUdT9rUNMAiB+vIHg2XF5wod4YK0pP07C1Su5YOBHBNjUbDGlXy9qQQ=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190217_1550361974691_0.19731492330672573"},"_hasShrinkwrap":false},"1.6.8-dev.20190218":{"name":"cherow","version":"1.6.8-dev.20190218","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"70982e67d3f7983ebd97ecbfdf86abcbd785a1f7","_id":"cherow@1.6.8-dev.20190218","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-t61GJEwVwBccQ0MEhBm/bsbfgCcryVmEtFtOr8J9i+rrhLm41VTzDQnz7SwFQBuwS0q/vmLfvtmWjVMZKJ800Q==","shasum":"89c84ed15868dc64c1e447f01ee1351a02e659e8","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190218.tgz","fileCount":84,"unpackedSize":2342013,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcafekCRA9TVsSAnZWagAAyr4P/2/fSZvzEZ9FeF3uFbgf\n+D+aE5epxBx3o7sPqWNZU30/WqE2g+Sd6O69fGDeQsjhRfiKRS87yrmB4ai8\nUOSWdLYQDJd/J1ZhJ9jkAJI53fH3RKsmZszsvbAlFMEmb1bQtC5gdWiqlcey\nKI3SpFCMZh8YLG54olua3KiiOUIIIAfzNeHf64DvdFSxrDXyAJ+gbIyJaJ4p\nLHUIzg+AtChC3FNkd135TjmF0RblrQes32Zk7CV0lb6rLxIWU7QLw5etX/d4\nIVoBjMogwYFgTth4J6OXf1xeyoIEOcSHIMz6kYeKDOxUC2BDEShtowVcM5xq\nAK6dwkWHAx8zHbGOpz313htsMLptJA2sWaowYPLPtH0uvVa4pyURe1CPwL9j\ntH2JPXvek4DgM0FoHXZdLcAYANMLwpg/KAVuoILrxSFhMOeC/JTjDbhAlSni\nsFOltp0LfsQycbgoD694Hu9KrWEWIBVy9LMQnQUlF7FdBkDiYMvi+esCm1B2\n2FpjcAofWMjuTOQZ31V9qZbWfytZKPCgDeG2tZatbM50Ma1A0YeOmDfhHTJJ\nGNZrLPGvpf/JGGN6+q+9Ay65KNaKABduBnkeRRMsiqx6ZZUpncjbJ6Hti5rX\nAgdFGGjbthY69o4n4+tIlBbHEZtzkJ3k1/q/I/kmPnIVINcYIedp/aGEvcoR\nkuE9\r\n=lw69\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC52XFyDGplbVac3e8NCHnaUJrDs/DYNpApuERYBd1VIwIgM/PFpkx6BmxvHat7niKDzX2sZmLHma9KWV05dE9YGBo="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190218_1550448548233_0.6119390033130765"},"_hasShrinkwrap":false},"1.6.8-dev.20190219":{"name":"cherow","version":"1.6.8-dev.20190219","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"12d05f0f13713f66174c7149ff09ee5e4472b163","_id":"cherow@1.6.8-dev.20190219","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-55znxwhYF0t3nkFsUwfu0ycGYbzB6kKrlrJHDsrJk9vgNI5OQpdBowp3vno5UVKJkCCaaeQHDB2viG2NIQ/PEA==","shasum":"bd952b32025956aae9927a6eed73d0eaef7076f3","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190219.tgz","fileCount":84,"unpackedSize":2342013,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJca0fzCRA9TVsSAnZWagAAYiwP/Ay1/D3UFB9LjR0ul7n4\nl3PWTwqegKAY3jfRDoAR7YjhKsFQD7WwUqvFQ+2V0i7KnRF3iH1FxgU1Ix9b\nLvZtNTwK6I/YX9dXOoQ1DiZGZmwMqXFd97RQiN+BZ451h8r5pMr+bMz86rjt\ndkNyVAlfOizmg9qDZXnPLCyt3c3hkhz+WcBrwC3n0xdDzHWiPEIB5mvJpM3Z\n3HeVnbskUG0Yj+mE37344WxdQWTrgmFZ/W2lUL9UME3P94H+148tVPu3ow9+\nW1zklps2ITTXvUIBUTLP4kqYWua5iPaPfEt0jhgdT7hyTy8WkFas1JVVq+62\nkHAZuXCL/cm8AZJn0w6SGNOPBI5z+GOcj0ibjpRMYNq0CAJ7VMg5W0/03/TM\nZxEJ2u824GOIB28cHivyxzOUwDn6VvEhNujftZ4gwEAfGmuxWgiUucp1JDu+\n7I/bPLi5aD/B3Hs2MfifMZgnWQNcr4XD8wYkpSrsLItTonXkKmNlI422XMOr\nFZwiFamJaaEt/NNQMZABZq85hI+8acCALY0hZHzoE0GgPLThpaggB5nOYaJd\n6PoJFKCVYtfmVnM6Udb5Z3GzOAPJvuE13IFNBWpVxucd8CJVU6O7MeAHD5SG\nza3/z1H48P95US8HzjRGTlrvI6ccTajq+e2wKaN8K3+Lj91Yr7GvYSN9ziEs\npFP7\r\n=uOyJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICftcohfzyDgObJJWig46i8W3zNdQ2myt8Sl9GNruGJzAiA2NBnIuwrf7y/pONP6P+ecR1I7VMuEKHc7+gvybkiOtw=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190219_1550534642816_0.3317405133154028"},"_hasShrinkwrap":false},"1.6.8-dev.20190220":{"name":"cherow","version":"1.6.8-dev.20190220","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"030754c12ec6248f52f848799f460e4528f8529e","_id":"cherow@1.6.8-dev.20190220","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-GKQbZy1h8tbkV2pvETm+OXdKPrIDkS4S5N1u/OEFJNSxw3eZmUiVoGzOv3vzpBwwRAG0WJAs0fVielz8OtaofQ==","shasum":"df5630bd639af0a9fabd60ca24f1a70e362e56e8","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190220.tgz","fileCount":84,"unpackedSize":2342013,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcbJmhCRA9TVsSAnZWagAAwA4P/00ZLGMF9O2tSHZxD3Sd\nD8UxQJBUNMwXijV0X1jaIC4TJLFkzh5AzrmUZCsy6A5Y4b6LHdieQpTfPJ/S\nmssO8qySzy5wyIVpSa2a4H3K68QhNerBSQyJhnaRd/IPgNDUy0dNOlYMxCoM\nzbtt3/DU063HQL7c5l6an7OJvMaZLOw7EKp9p/2djHgemYexQBOkTt0ehAqX\n9F1Apl2WdWL5yeQopRZICvaq9T7m2b0nSd0oreCD9FdxxGFkAc3QZjyEXyIb\nAzJd7EanfniRPsGscOxdNKW5UWrcZIJ8ymsOad+VfcA/fFs9YJ3OBHA7qGSx\nAfohmkdgks8c2HRBZIDKdXY8c9Ly4af3LbRwTdLieA+dKs0VGQwhBkylstbL\n3pH52WjpO0O+UodWfpfUSVqrD3PN03DEFcKF0OX21efLj7rn/XKVAUAEWld/\nnGNb0JfV8VtfGF9ZIpWEnRcBDZD6eNu4+SQORfmbBEf5570xbapTBPedNJDK\nmxE1IZ5hOpxaCGTdT9YLaBpQzBL2vLz0HGHxD4v33dwy6Gw2Voe3KwWNvwQu\nV8Ml5mDR+vpsxWV+SewWY9vcQxHGIrPBJE5IoWmdU1Ht4lEwnXgp8jKUl1fB\nkII5WJiCl+5QyWtaVESv8OWCCDohwnIp6cULW3qm7uWaukzQqh5EWdOoF3F5\nxm+d\r\n=ciEO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDObHxRZ3cyX9W4P4f3KI71Ary3AT8gKwdZRVHFtqo7wAiEAu1ZV0yMpft875j0pGC/nC5KGg72oaJrf+GGmxIhG1gc="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190220_1550621088825_0.1429872996006214"},"_hasShrinkwrap":false},"1.6.8-dev.20190221":{"name":"cherow","version":"1.6.8-dev.20190221","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"e637808300f5d5834ec16f67b391ceb8db9347f3","_id":"cherow@1.6.8-dev.20190221","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-y3W4lNyMi+76d4LqR6JOrY/gP99tpd6Jg/23kGVWHQs72y9AyVhq8lT+6jVGY21jvRRQh3mVjcDY1HbU0kzuTg==","shasum":"2926d16c4796ef1eaf90c093629d2602da70a7ac","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190221.tgz","fileCount":84,"unpackedSize":2342013,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcbesaCRA9TVsSAnZWagAAhpYQAI15luAVmrEEJ+CRvu4B\n+so5dVVauyPIGP5scF6uWbc6Sbbt2IFGf7Cu+fJus7wY1UYadm8M2n451wE9\n1pVn8Swbz5u8TMq1zkmdpbzMdPFrAMW/Nt24K1rYqMt7wowAXjJPITs6iNkU\nU3Z61opFIKWmIi62iy6dVll0txwc/QsOD9D5H6E+0twuUo6H7BS5mreFNItf\nfc4lUcY69p/uFh2c2L67ls8ao5KkIZj7zVv8yApLDFCXnFVlNyoI1Ynteymt\nWwiM0AiGq6AxoVZwfdHX0aGrwL9dOierFVUj33wX7ppW5CRGMgjKyu6s73xH\nTrnRlcES7BPQsM/OPJkLXjO+fFEmlaX+yfPp2OfBYjmr+L3TmAON9qxtVq/R\nx11DU3aC0tsZ5CjZnkJHBK1B8/0vjv9XaKOsA71TJizpY4+1XfO+fwysb8dE\nX1xGVyDq+T/Io9Xg1paj4x1sBV+YdtCGfQMZaUsvZNfmVgANCs/tSIguU7tu\nS/bcnuRze6toqJa3Do9w87/VVwQWs91pKQe45KRb+IzBaK6Ilmletp4S0P3s\nB45pZx2fstX50MDaSRdYAI1hBtdIGdG/qkryDgL3ZgxYyUGT9Etyo2PyQ00a\nAdsXGTDjkAPOGIovUjuHpa/TmQ3qwHGHhDiLzg+NEZsqjXZpP+XNVGR5ei2j\niZn3\r\n=Qr29\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCCEdnnWF8jurV6wJ4WTguNAgSMnpYzmbnQrBZ5R6R8NgIgJkr7g2hYoLqcKFpJaHmjStSVDYdU5wlJ76PtJcSxndE="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190221_1550707481478_0.520490754663967"},"_hasShrinkwrap":false},"1.6.8-dev.20190222":{"name":"cherow","version":"1.6.8-dev.20190222","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"bde00c21795db7d52cf320095180f00ed46ddb41","_id":"cherow@1.6.8-dev.20190222","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-U4upp5NQET3hamHpgHqm7QlC/QJoe9ndlpA47wrxMH1oBUXWKyjQeN0Nx/Xdntb+vOyh009jEx0+tL08oaUb6Q==","shasum":"878279add1eb289e41c5292966bc8e36aca4abdf","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190222.tgz","fileCount":84,"unpackedSize":2342013,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcbzywCRA9TVsSAnZWagAAcB0P/j0vz8Cf9IVFeYpdy4xJ\ny+JDQ4i/oOeJhAQKML5KZSL7w92dgCfMKqHOrBj4h2F6KFadzxiydJ3rXa57\nZHosg5cppsmqsgDRqTeZ8VqdoeX0kmF5R4aNehYRshaL2zQbWWIClU/hM08N\nbGQvaP8GyzIzdBns631UG6m/umyym0GzZezJx/qhJmBEsVpf46yov3D0Fd18\nspIpDWCH7It2rPMAfywavrdTWPkgTs/R/EXejzhUJ9C/1wDj7aIQl91T2lXp\nUxTkV0lK/QYRZ1YHweaox2KW7okrtmiU7hTNg2pl32V6civM9+/UwehAHrc5\nny1Nt3bEM13o4fPzx2nlVwIpkVzG9TE5+VaB5QZRSie+nETR+E/rradvIYYp\ncIEzQqpiC5iSE18ih9l9hamfqbipNWkSz5PAIILpJ5WPkgILcOdxfQyEuNYk\nXfcCUgs9TR0ULWO9+IK50vL5gQsZAtsbWhmilmLzU3Amh+ZlcA9xXHyzCJ7w\nik+JRFxIGxCLWS1+7IQ3/gO5JC4/t8zFk0eYRswKWxu3zjpyg8okxMOpdMyv\npZhHMdrgPr0iwnbLXf1oQEnvfeY2mm0aK+S5cv9w5t7IujkUe4P0dxNe0BEg\n//HaGamJzlCj2TndiLJVBOhu16+07pIhYUyIfmjiA0CpEbpestTlg6z+c1+i\nI5Xt\r\n=0oL+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB7sZVNj45vz2PgNlb5u2/PZPtRGZ2SOlBioBwyogOAoAiAe/02bPaRTLVILQIDzQFtUKuGfiuRCL7ZCzF5SShFoSg=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190222_1550793903504_0.0823528257519206"},"_hasShrinkwrap":false},"1.6.8-dev.20190223":{"name":"cherow","version":"1.6.8-dev.20190223","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"f8228c3cba271860b5507164d2431c0f2e7d8d61","_id":"cherow@1.6.8-dev.20190223","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-+8nMtj9WkPV9wS1CXbIIoS8Oc7glsnRlpJQhBjcpTE6AGE5xlSzzuucfJ13BZW7sOovY4yvvTYGSNHZChK5asQ==","shasum":"a6596f0ba8cb478e1d86e6e9155b7e0d8d993994","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190223.tgz","fileCount":84,"unpackedSize":2342013,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJccI3yCRA9TVsSAnZWagAA1VAP/RFsnUGXrVhbq2wLY2Ar\nYcbpOFOqeeuE3S4pB33/qZF/bQOENaka8tOfAQbmHQ0LYtTgnzMf/9QQzhWw\nz9r72/vpzWoIIUQdZuo9RwK53uQY0DpXt3nKFFpGifX3HVBla79r1NG6OAEb\nFhjCSiapTPcfa30NrYnocXgC6gTBoM5yB2hPKXdO2sW8PTeWBuzr2ECTjSjD\nJO4PawEm8JCnxI5o5uTAtzMWk3PrrD+qGo+aUfG0QyYd1haYawkKEvmfVWDC\not5VK1vXwsvLdoiCK1IiyWnmNYhA4XnJv3tVJkKeHYFiNKAqnu6hWeGTNqUr\nakzI5sTote0yxQMZE1/Q+B5pZuxNw7G4d54faq05CmYbYyEOpLdjvNf9rZdS\nWsw//RPwbK+5A8oG+YSVTomBO1LqY0/VsYLnD7VaK91eJ95RySr69JifQNAu\nNpHIg/WARXMe3q58wq+diSNQ+YBOiCaC/tXwebwUx7tJqXbEMwpfuBjbEmKF\nfzdAK8Mmb67QhuTIGU4BvC71JemX4UddJqVwtMrDC6RXJRqRGvjXGw4RyQVS\nPONOEAzcqDJqMyK/VUuvJ79nz355C+VM7mwOYAsjDsO3iBksIULcd6BfY4RG\nhJ6ReJ5iva1R8oA77p9acUF4vv8ruEogMR7B7d9tzxEIujNzfMBL6DMaI+RV\n8eMB\r\n=U24g\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAlOXxAT91487K1vFtLpsTCrT24W5LQP5GivJ1qNistcAiBLxxGBcmYc/UzkWwS0M8oiM8H14a8SNYRAioHrtR0BGw=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190223_1550880242051_0.250614254545958"},"_hasShrinkwrap":false},"1.6.8-dev.20190224":{"name":"cherow","version":"1.6.8-dev.20190224","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"77f5e7bd92e1259adb4e480977acb09e66ceb0c8","_id":"cherow@1.6.8-dev.20190224","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-FXlFzrdY8BIkrh/gGCPN38j4Z+RumeQSTwEZCfTYUj+O8G9+izDTWfYaQc0G3CHGX60e6802QpkXm+cWBpqjWA==","shasum":"e0eb8200f02c04f1e8d7982d3e3575360510865e","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190224.tgz","fileCount":84,"unpackedSize":2342013,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJccd/0CRA9TVsSAnZWagAAxAAP/3nfiaAOvq4wS3nxBTmn\nWnckxBn9y1AafnG2wFEZTKeAoqFUFadjT/76YEx4PRqK2VhPAWV5SHz+Z2HD\noP4TLrUXL6YmlcgVrKr9NpRevhxMO7plN3bzwJyTj1C47PvDwp7YA5q1+lVV\ndHFFXgXz2dFxzgSuWubA+5CpPUwdbNU4OJOU0VprRYdZOeVr67lXW+wbSiuU\nrI5u74k911vTuVgLynrBYdSWraplSKPBFsn0RRxSRskvjc2oCsMMte+g8PEq\nqVGbkNUZpGH5B2HK10PhAqjrdqqaG69kIQWpmPRi2WdQUeRSxbv/aOgiR+Lo\nlkcA9Si/Tgfk+Hy7Pi+bGdiitu6UpxN83rvJHxd3lrBC93wQwwL2inLZ0TXp\n+UwwTR3sldbwEDBfwF96sbrCy5x9gtMvZb73+V0mReu9lvp8wBuyW815QBl5\nzIm0AqgY8FyExOcpEGd2NoA0VtpoWfY+5rn1Wc6R0GwqPIw8YzAAym95zxAs\nIIxY/UgAvSePjEbqGY5zTszDrjRcw7XEo+9A/COka86lgzHinDPiim0hf1uO\npsl27I63zYfk3G3v6KiBuH2UCW1yhs57sXAZ8PzR+rdY7Kbp1LX8or1wmlXZ\nRPO1G2HGkArzaJTL12enWua11NK01GExt+pvYybjx0mtpNfBg5Vzv1qSpc3b\nLc2V\r\n=Dwz9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHuYqBF0r8/Q/v/A81ISgk1Mi4hakdVWVDCz3Pxp7+VDAiAp6Pn52DUWFPOQHqn+UbGVoMi4nKn2VDoBCRIAo6AUBw=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190224_1550966771960_0.6251651284934558"},"_hasShrinkwrap":false},"1.6.8-dev.20190225":{"name":"cherow","version":"1.6.8-dev.20190225","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"3773c176cd5fd0ff9158cf28450cced785d3c1f8","_id":"cherow@1.6.8-dev.20190225","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-gjh92sL2lvs8rVAaTSRKEjwBKgeWJ1Kbt/mJnNg114eyZJnTYvOE75vpUhOF1XkVJO7qkzT/xf4UrwzD1Hbppg==","shasum":"e99fa1d712039b61267bfa9bc43ed22b788d8d7d","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190225.tgz","fileCount":84,"unpackedSize":2342013,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcczFjCRA9TVsSAnZWagAArc0QAKKFAGvizQX2ohDjDmVl\nRqc3VNVp+b4MpnZK05sPw/XPSkD83HuJfnB/rT0YScs7xt4xKB2oWL7C7Ftk\n/79ADDb+0j4I6whi7ugyjjpGQrFu6qTCKdncb33sqqiZBE8z3bXajNjQqQSa\nDKCGhbl12oiss+QyvVlTe/lXaO8E5vzthv4Mybf2kb3qZIyno/RGG9kgdHD/\ngHVoQdxoFb8wpWh/x1sUd3Y3yYYadqD6GRHRyhz5v5KLc7puiPmHnfPhsAnZ\nVpD3zaAQl7n7WqSzud2z92UGd4Nu45CtxGPW+L0FRaO+JIviDnsfM4E2bytc\n+kw0d+AJTTszeKNIghMikphBdkSosiP5gJsPshqLmbdsyE428GTXQC09odhR\n/QP+L2AiZD5rrAiRhwIBQ1jyPdk5rm1JT78v6pdODeLikg1Cfev5i3oY7REn\nYnHYJr15pwzbylES+uUAbRCRM++UiXwKNK4xxKPyXm6tv0FAyfMFijYVv+O0\n9oF+SkaoyBVpusR3QGBsGYqVshMGN9xhlUXDUcwdezNhrvoRfr0KM12LLVKv\nUc9j3kd+6JZFpxXhjQaoRq3xFq7hQcbKxp52YNLtvpdUsupF4sjrJeD16UnH\nh+I/H18Grh/FFjuA/HOmaqWGL4sgNg3fCsH4e291K5A52YgXUFMH0vNBp435\nRkSt\r\n=NFa/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFWEiu3/igFt93DoHaKBXaKv/Fd+Pi2Ij9jFbl4uzoMeAiEA9eXGEpcHcVqEttJ5fB8Iwy57yLhYHfXlBU7ENhshTzs="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190225_1551053154646_0.26322108202475136"},"_hasShrinkwrap":false},"1.6.8-dev.20190226":{"name":"cherow","version":"1.6.8-dev.20190226","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"a93b26e90760a0439b2a3c5a3fae911f8010e5d1","_id":"cherow@1.6.8-dev.20190226","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-QBlIaMjHioUNDfZy4+fdVLu+cagRQLTh8ymTCSoXnj6XYYl1kvbR2FVCkmS7YvsY44amaH8PAekLj5IKgAou6w==","shasum":"59f7749f66e6ec0f0dfa7b6762e1f04c48dcff48","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190226.tgz","fileCount":84,"unpackedSize":2342013,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcdIMzCRA9TVsSAnZWagAAxe4QAI6m+h5R4a67TaQo3C/g\n1omqPKeaOawevgKJr6NAoiBhs22EiRojOJbcFunpaxhkZBMHNNNpTt+OWWu/\nsZU7PqUShBEdQPeyvNK2iHkmaSuzP+1RdUDRYIn2bAej2rvLQiHsIDEvIIok\n9bOMrLBPBvC7WhgQO4HwKDzUjEfYpq9sGKRklqqGUJ5oibynHY5XT0dqqe8v\naJObTnS0abnQhkrNchPB18RIm4tKZghlpBsJp9pDe0EElQZtrPZF2viqm4Wt\nhhmsgXmks8uTcB8YzGhzCTbLxPFm0EAfFSXfZZ99dhLtNO5bgD6vHZ18Mhu6\neI6Ju6K6nKV+I9RnYYqVFcphIzmFlFieKwwTvpjj9k16ktkuTTkWkJ7JPYjn\n14TJE3Fz2nzmNOYREVMZLRFLIaGSbfCNLtpr81Ept3XBPb+iapkNoMjDBQgI\nWuE5d2vlsSfomvbMx5mk1DaxVBeX//Wdz5KcwbmR3vQROMhcMlT3oUb4JOWp\nGNoyADtezBNKmA7SMDlDr4n5OAXouaFhTfb6t1R0w+/5S2mT4K++MF8cxeiZ\n81OpffEISOjDeCPwqQL26UductstgKfP/gEWquBHMh4AlbTXl9NR1ASuVkts\nxwC2nzJLNzHwpbjqtknQltz30wlfMFHkGU6TQ2RaEb/tFFsKFnlMtdrSs/as\nih8/\r\n=CDHw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDhTfkzPvavfTI6BrhFWpTwR5VqsqIrOqAc93mtn/7r7AiAWnlihbBNAYTUtaybsG44Kxh9xWT/k9k+R7MpkxfFdDQ=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190226_1551139634575_0.23756905893057612"},"_hasShrinkwrap":false},"1.6.8-dev.20190227":{"name":"cherow","version":"1.6.8-dev.20190227","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"fbd52ee1ed97f72c3f852428904439d826a2f696","_id":"cherow@1.6.8-dev.20190227","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-OSiDPLbF2eZ/3a13OQbkfC3GoTrlYgg8Tp0OGwtGCSvKTTN9V5NAYCjWM9/+4d/ZXUlU4SLGIQysUwXg5AF5PQ==","shasum":"05850aaf02d3282425a8c3dc2b3dccfca9544069","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190227.tgz","fileCount":84,"unpackedSize":2342013,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcddQ+CRA9TVsSAnZWagAAd64QAJu5izU7AWUtZdCqrDWs\n4pJfUELAMPouZGQ9rjiadEzxSUeDc3abMbxfMuE8bLpinVq6fMhNUp1CPsQI\nPX0TBdXYSpU6AzsYECYsKch2hDGkn9KTX6C8ssqtUnz06xG5lxv143Rooy2N\nYkfuG9G4puPzE5FtCF7j2kpjhmnq0oE6sPXU+X9JiArbBCuulVEh/sbR3NA6\nxUafPAD5zmhLCMHiY4KAPYbVKT+LMM73lQrl3lgC2H+Mhp6V+qKIz706j9GS\nap5R80Poxgn2GuNQ/EqxnDxLLEUEZ4cF6t9qJt2Ni0tMGd0I7Fvpaq1M/FOB\nxd+cO49Uam8l+d5Ut14nSPPMlwnEwL7nwSjHmNzGTUn2uFYZwd3Fe5ubWDxk\nGgIoCJYu9WBPMF6A09AemYIqxiwnZ14hzinzLtZNfmU49HAPIdN7HyQ+ZyNF\nfgfkzmTpqvPnMWyPKLUOFEk/5rCWqxACt34zPT4vr274Kh1cg3e6gqJnH9Hw\nMyAvktxDIpTdrp2j4iy6HS+UrqQV02hQ7oUA0RqIMRmyuqeBo6cGVY4c2Aav\nhc+oQLp8BaaCON7NswAYD5ha/QJ8HoI4D0l/IFWOrwTka//iUV41rV+CpGOa\nCxVqyAfpgMyQqSjN/h5qQQmPAw+Lelnklchp//lCSEgKkDrnHOt4yHg4mEMp\n6Oix\r\n=ck8B\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHs78QyLjVZa9swaEaaR8wh1LE1L66qbwYHP/Wy2NBwVAiEAlFTGq+wPj0fJFIPKdpQB83+4ZIPWrsZByp7nIaRI8nQ="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190227_1551225917396_0.5491474309811928"},"_hasShrinkwrap":false},"1.6.8-dev.20190228":{"name":"cherow","version":"1.6.8-dev.20190228","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"4c9cd9cf05c2d97c27131674dd5d5d3c2e7abe98","_id":"cherow@1.6.8-dev.20190228","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-cUs15XE6S8lc+yV4u8pdueRPkVqar+ch9FxJF3jbMGoU/AaZIWVI/LygmlmnssSd2Gqd7sZK71K/0ASuH1BbWw==","shasum":"fe60a32b75aa4756603a640b5c7312f7477cb50d","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190228.tgz","fileCount":84,"unpackedSize":2342013,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcdyWiCRA9TVsSAnZWagAAAFYQAJFw2k4LWVg29pDKy27h\nbCTEJS2eZl3p63lPYVyiOYvrD5D11rys+dAo1uhK/4Wvoo8H7YyakqDRz2LI\n2JeN/fLTbGdBrzRMIxa/F5Icz6rP3hI7UZrmxI5iBha2MYRiWojTMdLX0QUK\nYxW/q+/QH0IkkfdHd45hi3C7BTVUb6dA+k4kEeeUA/1SKQ5tKzh920G8Mt99\nAe0OK1lC4Djhq7NG8p4eF9kF7NBqxIy/MC2nmTpkxRJ5wvO/Xby4Yxw7NZWx\n4pWEQ/vbJTvriyaUOzE2egxnP5gJBUJpyXQHkRSC4twVfFYricDqyP21noR3\nKYe2UWqfOSguoZKpOGwcFg4bk3ITR/hzaSk8rMDs4NJamWIOV7BIbvPI/XJB\n0jya0D7UYoSJlOG+Vdt0CJ60dieW8tBbfr5t883vmJsHt9ObNHoJ/PIe8hJF\nKSGENjqk6rhLtdln1+JLPYKdsGOA95TgmXBcwcfCXtlVQpZ5TuYDPI7F0HiX\n8G2gJF0diyuUUNtFWdFm0droFBLBt3ErALHg9yIRw0j9tq2r1/gAYcC8LhFK\niamFLiC08MYNBeEQSq0rtyO7vRymRV7yL4VyURUPxcTjgzygtulNpiFc/Itb\n1f4YgLCc3oHgmMBfUJ1nEOjy/WhZVNHHCemJsTafTMiPUD1N5ovGffBxmaHx\n7rsk\r\n=MJFm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCX4lDOgBUg+w8tAXBulNphkt5yuVdFlSYE27LUEOFcHgIgXeZv4xOa2UqGv9YETRxcw4wd7NI7NeaZDC8CyS1J6NY="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190228_1551312289963_0.30065419262837834"},"_hasShrinkwrap":false},"1.6.8-dev.20190301":{"name":"cherow","version":"1.6.8-dev.20190301","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"184f767acf9b956c79c40f5ec7928d1d16720f49","_id":"cherow@1.6.8-dev.20190301","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-2Zy4ShLOOgJ8uxMDBQF3nJU8KT0zAxZGKe7+AgzShOQna6c8WxRu3ljiWWzb13I7Xo8OBKEGho0Sz7u6UEmP+g==","shasum":"ea3f891807726f6f3d58fdf9c70d6a86e00e6389","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190301.tgz","fileCount":84,"unpackedSize":2341964,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJceHbgCRA9TVsSAnZWagAAXPsP/jp1jqwdpSSaWIynS5ND\nK8qihmFdV3+6xLMnB6AuyL281NykMAbOG3DlZ4klTpwlCe9PyJBduxHE6ude\nM8ny5q1D1D+BhS0YzgP+3A+QmOmCJ1aXJ6JapFz4Q++lVjBKBA8FspOp8G0s\nIepcJvNDOArNEcmivGWgkS9C/Jf7Wf32/V5phUUyYQEnTYiqwuRShIK7ymLx\n3TSqsLJJ/TaLEjixFhat9fGOpEKb5BLsOyTExRu1yR8Bk9rt0DZzUZgNR20E\nVGEcZggZzjUFafllBwJOqS7YEPV54gFVJkVWQHtZ/EFn3TLn3ebQ4YqTWJTW\njQZQIo+q/hHgedhgD1OZrTOWYcWzi8bU+I54FBYFJetABuBZsUq2tqvm2v2M\nDu+U8anZUEC3vZYiI+nVHU98yhTksT4OrRQcWayVk4ufXaaNO1vqo3OgyVnG\nY3XEe0g86Tz9ZR2LiCTMqMm8loLMEf/Ashb9GLQA8PFI7qfGeXQb2t9fQVQE\nbq+DiUImYrBc+fRDFrv8NTONIwhHXwo7B+fwomwYIm3c3IuyxUspQJfiX3kf\n45aB8dlCYZQzvonocmc6OrZ+7Fz00NcTKdyigDif67w7naarpkDAcHH6XOVE\nIlsl1UWMzquY4yKtgforBN9bbV3sygeUCbMmuPMZXiX+MWS64ewSG0YxKG1u\n2PVL\r\n=IVIF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDCt+teVrBe2GSCY7QGCgKf7TAojaYQ6+6JoNJbjgMlJgIgJDbVMGLzN/pHZLoQULMng1LmsPJ+oUZCwhXxUj7Gmm8="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190301_1551398621874_0.19527439649077105"},"_hasShrinkwrap":false},"1.6.8-dev.20190302":{"name":"cherow","version":"1.6.8-dev.20190302","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"82ef16f53467474f8f7bddd3463ad121a0ff7b80","_id":"cherow@1.6.8-dev.20190302","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-xlebyzYEK0XdnS4dEbmx5taPFCEONrmTL3qY4z3DyL9RTVxErZJt82ICSZ3kNbDosAVYFuNHCaGrSOZEXdMATg==","shasum":"cae22815956020a50e029acd75b25649bfa47aa8","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190302.tgz","fileCount":84,"unpackedSize":2336552,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcecidCRA9TVsSAnZWagAAEpEP/iDJMQBBIJNJE6Oht4rG\nbxHaCDZCscJ1YIUdvqXb5oZpOxFVSpGw0cXLW155Ou+TKeCFUIwKwEPpQ600\n7GHAs3FBfs5/n+KyMNZeUwaqVeriJPt2H0VN7FP+rOncX+Vprw/ZgzY4AFQZ\nPBONsZeCR4au7+DWLJQcuFZWanJzUHsiXZ9Pb77kfnvhcAV3EEriI8OersP8\n31k5r6h3WsF7j8ofjNqQjw9a5p704aGhsU/jmkqY85Fv5rjbwQR54AKOsNUd\nrvSXpc4v2XoLmu69EhxW2K3V4sF6un3ODJQiFmsLiNz9QGnOksse4VZn3Cgu\nZym7NfoUBeVM/3FDo5o//LCmHgJuXW8XCRM65S+wzkE9tHE+dKeIpu91PUb8\njyNufyJq4c2PYhYyNNPMG2JSrYxj3PEbi1hACRmiGxlkarwhkE9Q0PI8Wln5\npS4GBulfGOY6ae4GSWpJRGZ5zckDm6TM9kB8+4wBSV+VP9LS+8VJe/tupGvp\nDKHDBedEEHdRymKGa29STNNLW1rLc61pQYmpGam3VJBCSdMr0spzswzgqQ5A\n1xhCPQHz9jJf7afWCa1upR+ZaheJilACSQemL0QFotf2mzJJY9fXoRUS0816\noCyzht8+yaPwYogtRG+wKHx7Wt3DNyQQ/Ubp5MsDdZMdyEObRY9WCW3U6ntH\n/f4y\r\n=4rLU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCZ1q387Y8tHDYhpwyH/jKwB1OuBcVUZEKaiun5skKPbQIgd+4sg/BYDDrkG12UsrcSuWqau6Y0668+H36/TgxoI+M="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190302_1551485084800_0.036555650725371924"},"_hasShrinkwrap":false},"1.6.8-dev.20190303":{"name":"cherow","version":"1.6.8-dev.20190303","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2019 [(ECMA-262 9th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"4032afcefb508961bd1a80c1b0c970fab346e445","_id":"cherow@1.6.8-dev.20190303","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-4oYfUN+vH8YRVQK8Iwfic+st+LMZ7D7v3TOj54reUVsDAn1wC1YM2Qet9f5HvE15ZIw3Apdskp/pFaYShugCbQ==","shasum":"4375c4e6f4d8ad55b839402ad0ee75819a7a4cb7","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190303.tgz","fileCount":84,"unpackedSize":2336552,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcexseCRA9TVsSAnZWagAAcG0P/jdwWhcA74eTWk4SU7zw\nlOD4wLU5bdiq+kzOjPSCybm/12Avct3z61XRozsAOMDZwMiF1agfGumKgIRm\nDGI6Quvx0Q3BF0XR43TMEJbWGRU0guxJSsAWHbu2dyeaedIoX7D0KBQpKsQk\nvqDx8OxECw4+1v9Bhoej182UrQwKiBNNE71/aXqGjOp+1znn5JTlAQwYiJ3P\nA+IkJfYokyZVCes3kBPfc4emllTgLGKK42A3QFFictZ3KYrpiRPQ0xnVVSW4\nLEyWLbLnwsbFLwm6fnfA31hMva3PJMdUgsLg5021qBpPIocAOFc9Xa4E9EgX\nXzivO5hJqKqwxYUAE24GT0TpYlvQNXZlavfg6XmsrDJqcVf3NDyEachxB1sj\nfQHmzMLSnz4LK6PLGubjxYdQCeZHvQd0jce47MxN0voi6BWxCF+KnACkB6jl\nCWL3U3+izZtvBF3qP1Dwexn3h+uKstvMdF+oDH0A+9zvDxjDMG9+zEv3LNKc\ne2fpiz3vXyu2UlnfhddF6B2EneHxvb83UyyqnWzsE9TDD26Y0mbitqaOAVKz\nAfsZka3ewmLr9X6WoHqvc39utpuFiZPrRLVOSxvgbmyis5qmJZcjFoqpLzIt\nVl7rhS7LUSYbpXDR63WjitVjx8TX1QAwcWVhBjdF3je5ram2NNigr59I7z7C\nL1jM\r\n=lPRl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHpxN5cWp5hWmwUPIJ9dlDi2bOvewZvry4reGmLK26xZAiBQbDaPf/AN9u3sufe54mfbTv4TJTyNmZKHtzbuPfY1lQ=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190303_1551571741515_0.2772761754605628"},"_hasShrinkwrap":false},"1.6.8-dev.20190304":{"name":"cherow","version":"1.6.8-dev.20190304","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"38ad5adbe307c44ff636ec88cf71b530ef474acc","_id":"cherow@1.6.8-dev.20190304","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-UItxyUHqP3eb6ftZXhW8q5DoKSAHvpUJBlXKJ3XU1Zk4ugVc3x5g9xIHFH1yWr5Z9d/dQKqsP/tsyuqUlVYVKg==","shasum":"80278b3452a43119c74512966d62fff2205a6115","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190304.tgz","fileCount":84,"unpackedSize":2336243,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcfGu4CRA9TVsSAnZWagAA0OUP/0qeyGND5eRq1ttjJdwk\nwv7tTsF/OZTq9Kq1sb6fKxBhGS5mzbSOD4h7SNCAH/YOkcEoKWoQ1/63dyUS\nf/Voi/rVj2NKSLKaAug9VW8WeLJuc/1RpeuXQmQxkbe7gjCHEhkEPZu7EFt0\nPuZm2+H/4KHQq7s4zdAXrM+2y9+asNicmncf9twf6khi4FJzzmQjU77zicUn\n0QFVulr1AVNecmVG56k/NWT7D8AKifjSnLmV2nDnS/afJr0qkRMzsktn3FIE\nNKTXNgaQKDJrjOSIj80vP8r/wLBT72NiyBZCC2BIGq8mHmtEO9hOF9yROnek\nNrSJlpbuWYhx7wFMLSjc88jd/GgUmqqq3V6oxBqwecbLD2MIcxyuOh2IhYw+\nD+hUGjmH0KgG7Bp1Jvdet22RaX3FM30pMBZEPqsinOj+FRoRQk4sZQUBbnjl\nXtpVs/Wc1yb22lfya8fQCLagRuKaJzmXbbWkJFc9l8kMFMyOVLt1DfxfGJ80\n83DhKZ6M4C1gefvFoUz1zlmDh7yQW11xeJcZOsqDPa1ygQgxziUonJL0Rc/a\nK97foyiijLivBZj/L9SO4XdsQpaT1OF1NRkvl9VjhV/P0WoqLNFRdd9v8Xnp\nC0Avg4un1Gz217Q2p8KvwItQD+IKJcxtHJtcjTaIyW01Q+uD0UryAem4DXzK\nNDqU\r\n=gXoe\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCT0osxHiBrNGFDu12L5MWpY8t+or1L0vzx5WyL0pDC/gIgKpbtUucDFjdhQZUBKq6fSprV/UGkbSweJGzr9rc3klE="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190304_1551657911066_0.5097649879165045"},"_hasShrinkwrap":false},"1.6.8-dev.20190305":{"name":"cherow","version":"1.6.8-dev.20190305","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"e7f7d9a2cf95e2b39ec7b10751636238faa29bb2","_id":"cherow@1.6.8-dev.20190305","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-4hlQ9DKogl3nfax/ckSttc3W6YKz+qkjJltDLoFEhNDOCgU/q7A42AySyGzPZv9+bmenU2xSzlOW5JUtRPhDCA==","shasum":"be7e8b640cfbaf7588061dd47d92d6d3d7370728","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190305.tgz","fileCount":84,"unpackedSize":2336243,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcfbz/CRA9TVsSAnZWagAAM70P/ipXBdxGNaAKiMtubbwE\nNbYe7WoLTKxJN3gF1ogbaHm5D9r3fPTejDKZvjkOQHHgVE+pJHf2tSbP7P2q\naLPVOCevu9+aNPoH25of2I1TWezynrwOQYPQtt4uz3hcI4/DEhOoU9zKYHzm\nUNKz+PJlkQFdperAcY3KXaMloQNXu5mXemmqBiQ4N9RYO5EKA8Z6ihLIH0fC\neOj5GOuP7FjpKxGovkliyFrdVc8DlRtLNh6XK33hF2BeAUN6uvTgNzY2LfWQ\nRjUm9eKkH5VIJ1IdQX5b9fq/LV5qEnpMeIVx6JZKODlUJLwE8rRz40zL5boK\nV68KE+HhgzCk/GyElrvtrkv/aPl+O4VpputvOkjS5+Mp1dJTBTnb8ofumSGV\nn5MdvkU6LxawqB6pLTfOi7bCVv1NiSFmW5E2XkSeuJi2LfaUvxTUMDCVn5gg\nNUEBAe95PS0p/Vsj3h5RCyY6YTwY7NxYu4SA6TqWEtYq1UubVFK41el3Mfge\nxIGK29kUHiICz4AvBDPJNOkdQsMPWYxg1W4QrX1Igdq2j8XcFk6bGFOKqE5I\nlKTib/n6OUmJfYqEIIMxendxJ2n8wU/kJUuMjwYUVg9w7YXRLh03yAiVO8ir\njP/g1KkYaN9BBX0GM5gwoGaZYVR/AfbqMnS2b7iFwsx5xieWlF6OivmBibrI\nhrnK\r\n=IAlR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCu8ndiJeYTHTqPMC8Zm6ypxW1HUXVqy4iDtS3VT2V0PwIgZCtubRbxRDmD+y62TLTv9rDP6EkwSAieId7gLVZ4+YM="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190305_1551744254196_0.8110729761656039"},"_hasShrinkwrap":false},"1.6.8-dev.20190306":{"name":"cherow","version":"1.6.8-dev.20190306","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"85fe01159e85d453b485b16c1c28b622b61209b2","_id":"cherow@1.6.8-dev.20190306","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-8CGDzj1WHqWWi1xJ1aZ0cIQyD4IcGg8YRI6y/ySBOS1qi8OYphwGCi2AXHZFMDsEh4ni9F2dKBXbgXinYjrr8A==","shasum":"67744b4a787c7c7f1977a23af06cd98f172c6a35","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190306.tgz","fileCount":84,"unpackedSize":2339902,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcfw6XCRA9TVsSAnZWagAA4RwP/iTK7lEiqEWokH4mOglG\nTwcSLV0T3O/xPvjFEky21MM2utgojl9R21d0P5JwLoit6A7fwM1DhoS+oUmH\nIMdsxIkqoRydLcKSAKsjRSm+57utnqqBpBjwYxVQRDNqGgznx+GjUBEeqqIV\nPrLo3f2OOKbaOYREJAfValk6xtSHcvw1TWedg5BIAx0kLCRRUtA70LR0uVDp\nyOaBrB7hEIOCKuKU0gDqCXRSVoVuKF5u0asqcYpN4DeWI5Di0+yJ8l627+lg\ntau+8lWDpWjt44AEqyoifY/5kekX70Nf7RVkGXb4iNqG2ByfhD2EAlw7wiBi\nNWAa6x/YHz+MDYTD32poyV2R0GpWfRfIvczYb7R+Fz2YOVrZp8I0Gu891XZG\nrL0KCzgKk2bS+Cw4DNsxIoELw/3pApLPAQFbmM/Czki9nVX5nlm3ndBWmiV5\nYIzxiteYZwKR+Ied7tBBIYWgXNdsHFGacITAqSi6M6kHTvYwwsu89f3spMBO\nxWgTlNH1ivlxSUZAeC592w+EDQL3SRqXiHiw/xK6i5DeC/jQa8iB5V1j8POi\n6/2U3uFZkSmeqnrpnfdDQQMI/V4NLNxxk5P6OUcCNHnN+QoVqAAR8o/JlHBY\nXAY5JqUKXjn+Rnl63PwhxNWNGbJY2/b4YX4YUMsLBNxkw3tgccRfzIMLjz7F\nmd/e\r\n=KGZW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCEaM/FuIbmbuJ8JhEf+OaKPcoeWbfsTfAL/Boa0oDs0wIhALAAeUn9G4E2Y/LrrRDJ1aUm3HQkzC66KryCPvurz8GJ"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190306_1551830678766_0.17087739609813668"},"_hasShrinkwrap":false},"1.6.8-dev.20190307":{"name":"cherow","version":"1.6.8-dev.20190307","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"31a200be13655d7d8193f0119bd74884f16fe116","_id":"cherow@1.6.8-dev.20190307","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-f6jjNr67X0524GDVftdwx8Y/hyVisfv59/vrMJ43LmmD9MyxXjGIPGkNNY1g93/PoVlc1HSHqXAN5GFxBIxraQ==","shasum":"a967e956bac2e111e5cac02c752b4d8d263c08aa","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190307.tgz","fileCount":84,"unpackedSize":2340163,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcgF/xCRA9TVsSAnZWagAAcOIP/jRx4AHWEjIkVW/1Z2if\nxl/DC0wjdhwIIc/rpFh3r1Ae5DCoCpC8nitZ5aSV2ypY++w//5Ow2X/gRxrt\nGMXh8mLay4vAgqcScfMSjsLPI1E5hCbnwZz8V2x9NhfdgMCHrswS7HCVHBGU\ncd8dLyRI5I+tWjlS4J7bP2+MGXouVYQsVCcXuywRr2dCWwo8PORatxxoZtXn\nq1o0NyfkwM+vceMYew9GrjodvieBJAP6vHXfKelFcUUsaVPfJdNnF6ngZQN9\nl70ox9UQvfYMXyL/HeZJ6DM6kMji+AfqnXvyYRPJwzImQ/KQuZNvRDDYudfI\nS6s9lNd+0ulcMr2kol9pe6JPfEGoq5GkFfv7AFHka/2/ZllYO2GyhmLyNJP6\nb22gGHyYjNyIBW5GNDVYG52V6yULHAUEa+TTE6y9S59wx1sFsy7LuBix1ASH\nh15olOA6M0FrjWmBAE+CoAYracfJ0jJqi9d9q6EwpKqn+3igJPYt26eknt0N\nw77ncYx0zm/m9xa6YbuINS937RhVZf7Czw223e0yBm4K3TbL7l8eyunLojVm\n3zCSlV6/80MT1cLIToYOsr94KIJjykY08KLa0B8FfKjxxT+meqPwq5s2sheY\n61fTcDIM6Kxr/IO/0lb3w89l3rYZelf+fIptjghj9on/LChZ544Lwp3WKA1u\ngqCp\r\n=VylA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEsZF6GB0WLsRO2x0oSnQgSesak1jCD9fgbx3MmCJ1LoAiEAniFcdIDrj3VYmneOb7jhqzNKHazEcabyiMwpvH3+n1A="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190307_1551917040248_0.4802168573181125"},"_hasShrinkwrap":false},"1.6.8-dev.20190308":{"name":"cherow","version":"1.6.8-dev.20190308","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-11.0.0":"^0.7.8"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"bdb5606bb74019311fe53116db02eb01c512a8fb","_id":"cherow@1.6.8-dev.20190308","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-6ROzpQwjjfpXAhsgbkBR9rz1THM8CzH7DLrDVclCTbQHsiBDgALEqqpoxrdw8RYN6U10AMt+DCYmt2OVVXxMhA==","shasum":"ef94a67b64d2b925ba179270eb1af45b8e077de1","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190308.tgz","fileCount":84,"unpackedSize":2339906,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcgbHhCRA9TVsSAnZWagAAYOYQAJ3wZunAg6yxAiSrnPNU\nGmGy3uLKm9aGzI3EjxegNfyyDAgggvuTQZ5gBkHlE7AKDzue4QlbNAygBwvM\nM18LnxOKjp7pPpx6Z/82mOixFJ4cHkBTft3r6zXk9bd7/FxqD8DtG770CGnj\nvtMSG6ucftmMPYwtpsVAdrTovsbR5LCR8z4Hz8RpHS818BbVAc8aVy3jlowu\nw+HJwnS4RhztbrkNQ0kJN+CeZUpwTw8pQvS3b9oZ6Y0jHNxmkwV+b8KKYnSO\n+1TgPcNLoiF5dNTKyIJnORTCH8gyLW6kr1oyqNgQ3s+LrKOA5a/FP+WrDAqS\nFm8xbkrIlSdxsQZP2wCOV0tQ3f4sgRplzyR+IxBLOrLN8nWox6xXl5P/lsY4\nI36ijOo1ihB7UcmWPeclmLzCuifizlix/1yHYb0f1KCQkSniF5Ib60lB3TNx\nkKNiSrBYh2LhgNuLBqzjl3il28C2onat4GkXjq/8BVixAD6+NUZUczhahG3z\nJbEboihN8Cnofb+9HEHVEVXXeXrIY8WokaUABOGyUuloo6sGbUDDeCbRlV6C\nnM7po2hPvOkAYn33M1Wwmu1JMS+0aV/9hBi2tDbTwG/DQXsaUxx4cqk5c6ET\nR4lFwHd1uLCdyP5iEcaC5H+q6vf6bHeUXfR5/2Omag6GbuTWyjXYO6ip4yAT\nWvZ9\r\n=mN0D\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDLyHSjuD/soSVI9uafErVjMTbbwHL2I0RtjxwDF38wZAiEA6+i2hbfhf9/cAP5yFuidJ2/w5KwixcJHcgoGVVmUjmQ="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190308_1552003552311_0.011706125438028625"},"_hasShrinkwrap":false},"1.6.8-dev.20190309":{"name":"cherow","version":"1.6.8-dev.20190309","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"ba1cf34d550869d0ff598db5afdae0d6f621a0cb","_id":"cherow@1.6.8-dev.20190309","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-zBe0SbagEp1nOChIrk5OaGEEpdVmKfZ35Gbrnfpw3fIRvntpwZdk98mIzfkBlNbXJI38NuTCglduJDuhT+itYw==","shasum":"e6623596fcb5624dbfbdb6c7c437857ecf888d83","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190309.tgz","fileCount":84,"unpackedSize":2174008,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcgwL/CRA9TVsSAnZWagAAwhQP/3TW7BN20g0massapGeh\n2vLiUzeU8XMGKRS6VEkLava33pQsWvNyfpasrXhdojtUiYfAbiZfThTZxx+g\nc/alwoPlKGvdxiGtnyf9M4v9AzjlpWlvtRcsDZgsBEgw8ywzzv/k+yXLLqId\n+VqrpY4nyXaajga5aHyQobGsbdroUVq+PGv4gbQmspudRgysVWA4+XAuRu/z\n37ySYdIh5NNfMd/cvIE8ajg2noriNawke1UwVByB4XGZ8A6LRuG6J8GCpHfP\n/0BoonK5zQL3FUPEzklQgrOjYxY/8dtMeFQrIH4yKdSi10QNwFsqooD8hCgG\nyjKykBiOZTTk2xPgjBXd+bgpOE1Jv3uGMBNaCT3XVX+qgrWKUcygFQtz6pkD\nEDl+WhBHjqF8/dQBygHELHGxQULFH9lpI/jd6+99zQH2vjwMKgIk+bjEFw+Q\nJ2mN+TK5aUWngen6QSYiOpu2qohR5p84gx/vb6UZ1XL9CTEuPNRefpQJT1vm\nLCCCIxAF0kT+NUaI1auOEgQ17xcDjR4LvmBeUBTvWQ+35BC6TVgChTM2BSUU\nqs1ZvdJdyO+8w/9kPvvWfHeJ6mHnAGzvMZdg3+f2UgNQOdP8GE/m8WXiWdGY\nbALYowjr2OSVCNUoXHsc8d9lfXpwKyFIFFbJNfgk6SINoh69ae4V1mEjEnp2\nOgF6\r\n=/hDy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBF/bcgqBbUJ8tQosTsWKKxktMpTzZ53ZlKADCx3u33MAiBTksI+aI1//JUT1WSp4amv8on2HqfAp1sSW5Fc1JadPw=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190309_1552089854179_0.40816325005326726"},"_hasShrinkwrap":false},"1.6.8-dev.20190310":{"name":"cherow","version":"1.6.8-dev.20190310","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"246f3ccedadad9cd7c38a3bd593e996bd1df5c37","_id":"cherow@1.6.8-dev.20190310","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-is/BzNKrvkM+zBPj400kBuUFkuw5G+bqSMSWkbsXD3TY912fbwnd+8FY7NNUcCDN5b4IUH17Vwyoqq2F+mSE3A==","shasum":"40445bd2859baeb75d0dfe93f495367996e5c782","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190310.tgz","fileCount":84,"unpackedSize":2172153,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJchFTECRA9TVsSAnZWagAAfU8P/RdA4WN4na/8voL0z764\nxcA/akPnP08MJ2tqrIT0fk2ELAKjLjQ9R2SdomvR9/nylW5H4qhh4/YOa38G\nuTIKsKZMnBAbCYl0ltl0DSqD6aixgTRzf7kKcD4HB0PAW9Rf+9B1rTu+Gzs7\niUPO8CL/kSHwmON8UHPiXzIe/aUXjqbX8rQ/Jzv4o55tA1KgkOOXd5TaDU8T\nvHOklnLEWNR5ksicQ040LX8Dd8ESIone+O0qeGB4GMOnh3qLIw1uEMGSnYcY\n0Oj2GWPY4nwbMUqXQjhfhXfci8WgUz4J8Tc7jCR8/SqfC93+pzY2ncws1M+o\n6YXgni17Pjz8P7kEgIjVi2Qo/OFpX7c4UOkbFHrP5ioqorQbyJEvexG449oz\nIu63wOm6YlRrSmwzt+CLz2gDd++YDt2F5PPKsaysNTSz4iDkMFW86EyXdiGz\nO0vuHOd4okQziGtkbVZ27bhm97cPxLx4jcAOIiQ4up4WCRq6iCjj5cZIyoRn\nR0y5F5EdtF4FwrU0BdFK4r4hn7KnkwKzuxD8lBBVP+6cDifMYdzCAZQH3LWV\n+9X/tgqMGOeHQYd00IVmV8+PX0BHnzhIBsXCR4qMvfSh1kJlFDBDbzgUpClY\nDEdJAJiyFuyctnljTTt9JosuyTCNVwqVYmZguFKJxpZ8TgP0ht6r51es4JYP\nR2Rr\r\n=AuLV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD8HotNSi0SjQk+zAXUhBCUt2sHsHzbHmQt/TXaRqed8AIgEy/TtSpnXkPdp54P50Xw0g/SbxD4HgXG4vI9UZfrvhE="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190310_1552176323568_0.2584784286633499"},"_hasShrinkwrap":false},"1.6.8-dev.20190311":{"name":"cherow","version":"1.6.8-dev.20190311","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"fbfa58af7f3717ce71c5c89db15dc3f9a3674f92","_id":"cherow@1.6.8-dev.20190311","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-8b9xaylZW9UoNQM2z56t0q+Al4x1X0t+5wZkGK2B1R6c1VNVEgT+VmGN84gEtUyvwDxl9JYUQf+1ci0jhLbloQ==","shasum":"4a6fa3bf2480c3b467722f4b437faad5cd5d81f4","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190311.tgz","fileCount":84,"unpackedSize":2172153,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJchaYiCRA9TVsSAnZWagAApO4P/iXQGLkOBNWJs5KfuQIP\nBsgo2oi71bMgfgfA2DrT0fiELT3D2MCo0hz88e9OTWDR99yIlMFzLxX4SHTx\n4iJj5yE0WR/Wx/epdEyjKfyy0hDqtqw4F4l9v4IBDDccBma51ljj/BXotueI\neqFGUCWaeZJ1iOibzpArLDrrw3QcFJ18wUQayZn+a+bJaJUGuClALYCTjDAT\nUr1KuhDv2NUt4eWg6jFpChNFxp08+0FNNza0Xc/hr4XQCnFZEiZB8J3YfbWA\nbl0VRwkLcuTL5QzSuwUzBPGW4UVTL5u+wEufMcN2xXteA425BRrnW/xXPP5H\nzaiTO3y7pq0+J6hYuqURAmgF9bBPIkX1Gw53HB3B0EKvSYnup8A02CLUOsfz\n7QyPSa89xFH6B2bXyDyQnwJpApiPluI6ENqYFAIUuSoVaBhIa4CL94QHriwo\nfCwrOHxcUURMiWzE/aLRbdF+Ny4tOiqoeWH+yoRz/6YeqDUHx4soicOIWtPu\n8yeHDrHy5CRiDnQTmK1VAujEXERSNUAIFpbcQ8AkkT11fnXjLVV7G6zEZe69\nvsbnd4YHW+QLIVU9sCY0L195DfpR/4wxsfwdo9w3xB3sPdy0q5pjt4yQIlCy\nuUjgA2xseecNwJIUN/CaSgBMf/crhgn5EzkwaDmT2Vc9i3PlzNbfua17XI1e\n2NYx\r\n=rInv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDeYgaEa1sFTNYFylbc3nkMgTvOZK5c785LS6OXUwBS5QIgfD1MPlMpniu3f372mBGNFsMKGQ75O4iUg93LAOBNlk4="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190311_1552262689108_0.32807396152989576"},"_hasShrinkwrap":false},"1.6.8-dev.20190312":{"name":"cherow","version":"1.6.8-dev.20190312","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"c038089bee3b987cf2f6623337dffb5c234843de","_id":"cherow@1.6.8-dev.20190312","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-b3ovwaZ1oFsVs0twZ7w2dYTZsJ0FUYFxxoP3RdU9XY3/+nkkrtyP9G/knv+wHwvyP7affZF8IgVmxUVQOiqTUQ==","shasum":"694b36b5e3b738a5031c987868006758f3f65167","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190312.tgz","fileCount":84,"unpackedSize":2172153,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJchvdQCRA9TVsSAnZWagAAmp0P/10Zd273zC8kZP4923SO\na7HiqEBQK21Ei2z5PMhN346o2KCnucCJN/BcAg1tSyuo6V6uOIpkX/wwKcsc\n7ciI+fxk4VzTAzCjLpqZdW7VYXPuIAad02f4v0K0G/q754bzB8aNLQo3yqzQ\nApxa6xaan+FdyzKFBgrI34RXJobAS/puKWH6eQhXKyz7iKFKJYQ8dwPm/287\nnrszXoRcPR5I/StH25NLi9IOzJc+xrc6kjM5VpFy57wZsU6X4M2m2Vd8Wb00\n5EVC1PDGa0GAGDj8P6busASnQ0MZ30fnSOSaTKaK3nN3PWP4uB6RGgIdYgKb\nx4jr3umHJsy52zkxvxHgII4mCUrrMrweUp2sb2m/u2Wc5wV3HZvOat+g1MJC\nnpoXhVtmDU6PRd1CfQYQyDwXnK1i+/LN8PmNT0SgFkY1dIVdHjoq4ku/A0x7\nJgVWVDGXmRiQFWprLRaT4FAjYuPdfp1oaBXZwt6KMgWXXR/b1iSZ70qdgB+N\nt9EDLY7c1FU31JnPzcjl+mHRZBC7pkRD5uFA9ywrnTgfqhRuUPWK9P8CJ8Cu\nUKkhviNQuAtkQm55LyCeJqRm3mo4RRErfvxIP4JhufTKgUBEKN+eriY4NRE7\nUm6d3jTPGgfu6LgX8dDOf6L9KPLgyIUUXUJnlcDR+05q8PTWNn1APXsaJWrp\nmeIh\r\n=SYrN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCbb6tUvP3rVmkEbcEYa125ZNpjMA0nqACms0rW3C/H5wIgf3XVEWWeQte1lM2ICsRvc28f56O08P7D1BChyAb9CIM="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190312_1552349007302_0.09003498501497353"},"_hasShrinkwrap":false},"1.6.8-dev.20190313":{"name":"cherow","version":"1.6.8-dev.20190313","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"7dda6191bf0b0079f24838564e12d7cc2af561b9","_id":"cherow@1.6.8-dev.20190313","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-iOzBe8S2fyrzNtAUWf9HJn43lJcFCi/vx31iDB7oA58UtGEASNb9D0XHnrgcYdYmRibfXE7RXTx2A0Izko2eTQ==","shasum":"a91afef8e5b0337bb4267915df32075d893efbd6","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190313.tgz","fileCount":84,"unpackedSize":2173350,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJciEj6CRA9TVsSAnZWagAARa4QAJRysQ+Nv7uFFmU7OApL\nia2MUTsgIkH4kwJrh+lAzJT4u2MfhGSX5FL5dtlo+Ia30rPGsM5rZk23ciZj\nqt2QLlHtnRYzYvecYtlTpjauYp20ePz0c62HgPOH6r3VU0jL7ipOVlIUoJvA\nCxbsdjiUqC5lJ+F6okq4zZ5EDQiIO9puYyTqwbCR7fWfXlUmafMjpbbQxLkt\n3Ek9yzSoYBG1grWctApGPvJYfBissY2HakLI8waqntgOHECuKR9aj7eoFyCF\nVKgKY1bkNm0k4G4e6v7+n2nKdsfktVowsSq3UCTb6W0Tb2+uIb311CPYgB7O\nCqr9MrcRS2XjD+w8wvBnuTsTqkWi4Ok3coiRZGnn1Oy+E4ZRmoKytknaOO+b\nkGoHIkY8nIlJWODOp8YC0arbPwXYl77i9KnDt1xEFicz5lK7tWwK8mRav8EG\ngGsoQBbtFMu76CmuQaZm+Do1JkCtYgj49CC3ubKPJmNyZZQm8US832rAKa6e\nuyidybLKD4EEi/ue0i/WhHRdTqsyCUIea4HN9iUw4FMxfAUpZiZMqtTbKmkK\nHr0kWmZPbbt8Sre2Y9goynnQuXSfPeBbQFlEwcvGQVYJ2i9C+3/+TiJNqJdI\nz1dwtUEgPNDN1vFIwW/MogeBV4Pu0/VQawpq2a+LqPmXyhlPVpQlapG/pE6C\nJ71j\r\n=8dd1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDHblHFAB8fSgQ/Pc46ZyJMqKqgoVMq2N//MtX2jfiI7QIgM4k3UeHyOZ5O/Vy12WgRHdhdyEfAdVJtsRTlKnbkqJg="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190313_1552435449705_0.20403491350084568"},"_hasShrinkwrap":false},"1.6.8-dev.20190314":{"name":"cherow","version":"1.6.8-dev.20190314","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"d840ac97bfb1801e01e297927fa8674a0df7566a","_id":"cherow@1.6.8-dev.20190314","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-DT0lWkFbwvQzK6GocNMHQLewCnoC6Aa0wLr7yc0cwt72R/pylwmkDoYMUFoT5mJ2TRDSm/gCTwe/c2zztwR9rg==","shasum":"6650c431478762afd8b15e273dd08a987dc51e81","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190314.tgz","fileCount":84,"unpackedSize":2173350,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJciZrqCRA9TVsSAnZWagAACc4P/juQLgoKK//9GdYkxzEq\nJBpXQEZjZYIcBVqILV+6Ohh7riv3KQWXhIiVFpnwUGufDk9Tbwz6Gh+w0tkd\nGrJqDDoHmzFOpg9inWQj9h+UCq7acZFj6ycrMz7dgAS6WGHgXd8guy6xbAOV\no6jRzRAqcJkI6UItf6HtBn/vPDoGP4m+0D3nsMyPNDoC0WWgsskyFD9QhC/V\nidXh5ThIhT55bouG1g3FGOhUesNlzwNOd1ZX2jaevPYMSx5alKqjs7NYXfnt\nMm1qucZek6ZOyJJKCC1in/u8ZUXyp7Kznpmnj0dJJLPXBKQmJmCehBEDluTl\n+dl2DjfrluetgF8zNcPMEgnW0wBZ05JNQecHCke9pSM4S3LC2j8m8rCtJMup\n2zUQr8dLruwQ4ICBTi74uMsRLqbdWifAywLP6jkO2A1B5af74J+6JmXpQ6he\nL4ta2yO1ovVPInMa2s8S3ka2oLrcBqlIzRxAGI8Mo0SSe3zqcCzyH20nenAl\nSzNoJmIhDngiXXbbx7o24//Me5S/C8L+e6NR4eNAeURp9Pdl0g2G1V/mGiJg\nJE1pIpR87itXay8OXVp2dB2Bo+61Z9ESOfxN4xTkGYs0YglsMos/+ppMvhMU\nbFDO1VqrBlGAQqsWz/LaydQwofZOocOZUiWCMGKlxgxzKQcm9m1GnkBQN6u8\nDYLV\r\n=1lWn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDNjZZYKNSHgRScrG040gHI2oImAsp9gVFnBzvGCQn89AiEA56Zelp9OiTjqsnaLhKJRHvhBewYQxSlzm2hPtHY7lm4="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190314_1552521960851_0.5813236635581143"},"_hasShrinkwrap":false},"1.6.8-dev.20190315":{"name":"cherow","version":"1.6.8-dev.20190315","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"4d7a4214d1b9c0b36f6e20b3517bca555b15eebc","_id":"cherow@1.6.8-dev.20190315","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-0IGfLLG8LSQu4jdOpaf1Q7fI/t6bpt51RxiGBAuKJiKEz0y1KxsmA+B2CHBrakA4kUCLQvAiZ4SSywIvAnm+Yg==","shasum":"adb483a6bfd185026902c813fd8701956ea86503","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190315.tgz","fileCount":84,"unpackedSize":2173350,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJciuwiCRA9TVsSAnZWagAACJYQAIIv0utElvy1Xl1oSQQe\niGbyVnor5bs/W67K0+Yzu5yQA3yij3slnXaKMnVnszsg2yhh4gdJ0o3kNbIa\nhWcXt2oemrbO4e7y50cTsNHQREYaASBC/kwvgSiJNFD8YDCS2S7pNI4IZ/G+\n2lxHtjziZiugkTxul9im/W3jDNWCrCl9tjVOcWVw8RLCWf/F+EY/vLYhM04k\nIIG62NhcfRpMWpq+1pUNWblEPVeJaS3lifhzi4m3Ev3TJW8O55VPfYkdfqyD\n7wMpVA37WM74yO/dUAdlddsK3LpSvhz7csOUMUUIqtPqA2/TT99y8htGKCvI\n0eHEbHfqnTKhMKIBOG4ZTyo+MsZmJCEkXdpkkPw902Q1HwTo6Z3aWW2Z8VcC\nqIOIHP1fJnAJrxnn+NT/JRjzjDeSQKAxdqPluHlnbuX/WKtJPddFc5vC+SfK\nODovULSb5RXFn/G4xCVL8JzNOPuutq1XIatwcVpBO2P6MkmrE50t2UIRmPsJ\nt2qs83i1vR5FY7mynTSLQPKMwxHiKaEzGGMWHUMDvazPBLChWib5jspJ2jzh\nQwdO3PyBoFsOH1ZgqUbKPfb6D/Ekn1ow6v4RnGVWvQSRUuIULQTN4JsdNCf+\nY52TDAZR0bdyFmp3XXlWwfrXGz6OcL2R+9tVfmRYA1fhTN0KOZrHw0Mhpe7O\nCux2\r\n=+dYn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDD+5E5limbGg93WPvf+QKtA/aKtAbPBXtrcruQzFG6rQIhAJjUdoNkmc0zlEJVII1ck3uWV3jJaQ0eqO3QQ8GykCx1"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190315_1552608289150_0.777312224677257"},"_hasShrinkwrap":false},"1.6.8-dev.20190316":{"name":"cherow","version":"1.6.8-dev.20190316","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"c6b507db5dc453f04689bf503a08d311407fad5d","_id":"cherow@1.6.8-dev.20190316","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-IqEMzHEiYt3tunqwCfn9i0t9NBNiPdOoIvva+kI0/rgWBYS4o5LZAkwkmo9Hn2FlG8RjHBmv7kM2AbJliyT9Zw==","shasum":"96ab143fd19ef0cc972927d62045459681e5a250","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190316.tgz","fileCount":84,"unpackedSize":2173350,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcjD2KCRA9TVsSAnZWagAAUpMP/1T/S40DynPedeVIOCpF\nrAAzyXAI+NNLXGgzS/R4eRAv7Vlfstzv4T+M37xdPtsNwDR9bodx2Uh7ekhE\nMTsaLgRpLgcvrW3ukagwcqK7AG3MjcgAnDI9zamsoTSMfRKnmOeK33FWuhtl\norXQ4yaEUi2/xmbiGMOE7SK8OmpN5tOEXRrv948JPr9dvRGlIxUE80H3H6rJ\nLmulYRRfzkgE4wI6HYeqvupCYgKgTGQKCao+4UvziAa+W6mpSvgT+DJW2/8E\nM3Cb6UmYvf583QTFXwdiH5wJGpBqz4q1B7xQI7koGpF53xdp21xS6pAMbERU\nM19gd1bVJb4GekL99wMzEfpA5Qn7hR6lNz1h4c++z6CCywBMChgS7ohySY4Q\nPxO5kgrgJz1EtcAqg0dZdzjrVpaBy7SW4Rb4RbM3drE+ZMvsNTIcDDFxNmnY\nZnVzo9n70NLFxM8QouWRSZyzkzejAO8tH5bbzbVY+Id76YLaDZ7U89P446Bh\nosK2w8dN2w7km7HjEMFKCp1JsSkiI2gOIUSPjl2Sv7OMycMldjNcJzqc5+Bd\nhGqexqppIFrpl1LgiPIlOh8iAqZFpb4wm0GRdvUyCB8MDwFI5sIfST6YZvWj\nGs0oL2niHDNydcnyaTBUK53UoDrHHl1Rd+KTIQD1hao5tkW52mJt8c+74bEx\nvJFV\r\n=5A4O\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCJBOqqBltwWDXDRQoCD2HhhFw2NoHxq9szmFbMqiYw7QIhAM4Otccx0hnYRkRzYcz/SHd4u/sSFX0ZtyUKKHRxV9//"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190316_1552694665817_0.9176399112082965"},"_hasShrinkwrap":false},"1.6.8-dev.20190317":{"name":"cherow","version":"1.6.8-dev.20190317","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"e19450f4c2334cb0368770174f0a1bc0b082f156","_id":"cherow@1.6.8-dev.20190317","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-3pVaFbpWMktI5Y2i2EGhlgiPL0TdXNiTy1HOOeMwmCuNmH3aN9HGHS2QTIH5z1aZiQlPIYdfwo1c0A7k0p7MrA==","shasum":"822c75e86fbc2a7a941f3d570cacc9621e16662f","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190317.tgz","fileCount":84,"unpackedSize":2173350,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcjY+QCRA9TVsSAnZWagAAYuQP/1Y5QHYVsQ2n2VOsLUqm\ndKo06A0JcM167gmbElkHXUQmoQSz+QJDUXpM9dOUd9doQWY8+Dlrgi+E4J6D\nkrNuDjX6H0oQMoIHxIYbsz76IHQyQk8rTQAgmSGSQcEOugE95hBzyp31/vKf\noTG25efIGXW+OP8ItBlpniK/ZFt03fn3aqUJQQe4jUNak421Y5rp15rOIEUR\nd2mpvNpEWJa9QJwITlf6y0qTwsXy2KhUuzJLAEaDYU7+FAHGmO2l3lfa+S1P\n7Wz0v4oPhArC41t9RhM67CfEsSatrQtMydCrUx/EKgMGNZJGBkajh7WT2VeN\npiWG0FTszen09YWrKhtvLwmnwyDzKe3ai0ZsW65qwmXJ4jnOwhrDZK40GxwT\nkYvPVV2V3Jjii3c7/WPp1ELc0ADVy6fXPviZNAzgUnTJkqUNK1kdKUM7z1AH\nfTJeYat0WbAFOlj9jOi/oxSIKnMZkIhTDcd46mkOT/IhhQjtHevRRZo8nQl2\nz0Yy9RTURR1zb6CdCfKFdIDEi2iwY7a+f6B8WW/ARcETejjcUegE065HTqIL\nY9uaWmeL1g83OiSSabwHLgAtkKZWe6SmpkbZbUE/rqoUwmiszHNFKX4OFKj8\nHLbAnoFq2oC30FmBsJdojFSe83sigCeeXNhBOURWBR20a5qBU46A8NGC5WLZ\nJyxK\r\n=5gua\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD269Fl9hGV56GJ3I0F55onaMNsiHSNb0bwS1ygdMh4uQIgI4aVN2ogZJxHplS6E8zbVnAthB/XK1pimZCTiMTGqGM="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190317_1552781200116_0.19591716855783048"},"_hasShrinkwrap":false},"1.6.8-dev.20190318":{"name":"cherow","version":"1.6.8-dev.20190318","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"86c43c98a76f1ce80488cc65c185a92321763e4f","_id":"cherow@1.6.8-dev.20190318","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-RNmjskdO5GMGBN3DEa9B1uQGGS/31NhkIB82Lu02Myt6p7tH6lnU0Sb7iAzgsFnQyLrJOkOvFfB6TpwtvDGEeA==","shasum":"99cb4a2b090ec8126e1cc5a2c7e0fce6feaef784","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190318.tgz","fileCount":84,"unpackedSize":2163610,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcjuEQCRA9TVsSAnZWagAAK1cP/iT7XOnZZ7RCbSaJ2OhX\nV9Gsm+wZ6zV8xfgxc8jKHbeMDnITWwVOkipYHBXf2IgJB34rXPCDEUizdKZg\nOKuBD6AEHJjfrrkBw5qtrShCkBHZ+TdO8kZdDR17pRP87xyzHwI7un1o0spw\nSYgJGSzc0Tu59SGY7zn7THD4n4mu2W1pso9IZpJ7x+X342YjyNxmq86Wt/o3\naJdON5oAFw5JQY/nMPfLW3KggY9TyYFLgB5M4AnbjYCMdwYxQ/gdYyZ7Zfze\n6kJyVXnXQly0Tq7uQeeAE/m4YM/+7CI9MDu3qz/PUyuc+B04SxCZ7nMZzaLM\nCkRTi1GFv5SphLCvM0AvnFAZ4oDZ62GNyUzkIJ1bZ/Fm7bofEFy2P/IIRCA2\n0QeGDo1BnZtmcPELOde9pHfhk42QpvrcP5Vs+qGHTBEgpYOtPxpUu98NEEFH\nlDwx0YLyApOp55RxGijcLyYx35LDHZTmYEM3+wAxN5floZCc/Trf+8YMq3A/\nxO7tSeX6bAF3qqY4cswaWCxUV4x6OBtAkMqzMD9Za2IrXwsQXiWPJK3jK/4C\nyeT2g1EMnB1MRMmz0F8bAraa4aPJMj6Dh+KbziV22NTSRoDrDc4h6tkNPVCb\n+gCzO/XsmWNOVcZVu9g3uKBgBZsv+VttGNXptlGi0gXXGpyB+Nn8NqW6Lfzh\nBD/f\r\n=cfA8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE/fNUvdjiKBnT3yYCiwgIEr13B4/sBXcp//MfKxCdjsAiBOmBdbjUd9ujK6pjs4/BOvzsrAl0nsPsaDa9Uwe3hrBA=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190318_1552867600260_0.43897047907826603"},"_hasShrinkwrap":false},"1.6.8-dev.20190319":{"name":"cherow","version":"1.6.8-dev.20190319","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"c3ef8a7df3ec162f963cb3ac06f105fb72580648","_id":"cherow@1.6.8-dev.20190319","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-Z2tqsIPMdJFP5QAUfxMbbhjyv2A533oM1BP1xhyK17YVEQo9GtFhw1iYXzcNyuKtRydes09S+7bwe1A3kD6EOA==","shasum":"ea1cf2639fd6c7bfce28fa506a30070ded730bb9","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190319.tgz","fileCount":84,"unpackedSize":2163610,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJckDIJCRA9TVsSAnZWagAAGDMP+wfjIRPDWIP1jZgGIbHj\ns/zESFy53Qj/y6MbfO6hs9gh887XYH/+pv8TrvqdmaKqwrDTlcTdtZ4SPg7j\nmHCrqT2cYIruzN87RIdLSuouPmmgY0jvEWndsjx1abHuHRzxXe3T5Wjja8oq\nhgudmh4WW9Zg1Al2M12V7DDIsJ/E8xB3yxjh9Un6Yoe319GaAluMELWdKWMz\nh+6pyl3oPkc+IoU0sh5wp6wDXkicWbj12h6tC6olS8Pw9qgYlwcIWx3rMtdZ\n97F1cm9CG0o6Hat4VWLPIPyVl5Y3Z+ZUFGtWcEC5aqoOLE2flf5JbkfNbgSS\nWtQHmCV3JuH5VSAYbzwKVcugsFre/l5stPLdd0zH1d5mHgGVlkzJNUSmDOuI\nxF0kvbPZ4h1JmFohS5T1V21YK9Ii0+HalZdjjf6u04U0q5FKQqPeAhNeClYY\nSPcQn+Z4/d2qdqyBppoGW37K0BbL7RUx7XVBroK+pCPhHGgkLLb/apumcmW5\nNSojzKOuhEEI4Ou817jbtpGMuy6RVZe7oxwwkzuquJVUq00590e2lk5YMYDD\nbaaUkn6JItxK4KXBt494IXddHngeMUbcgVBjEJyyQb94Qt2Xvanqo/KoJFYL\n/kO/DwPUUs+yrlaVwhwtNjoiTc3SIYzTBkc4JJ0JbxBGBdHq4U7A8/QsgfzB\nxej6\r\n=MKHL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCDi8u16V4pAilCoQyO+eAMTrxAN3Yk95KbPf/eW9irYgIhAKx1RDtub0L+ImDJNQ8/FeNk8rTn53TV0zdgs7bAk2lK"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190319_1552953864568_0.5664779129198527"},"_hasShrinkwrap":false},"1.6.8-dev.20190320":{"name":"cherow","version":"1.6.8-dev.20190320","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"387bdfc65ede6d30dffd87330b3b6510a45f4eed","_id":"cherow@1.6.8-dev.20190320","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-aMgp1OmeGftgCt4blovEsYoLsH0Zo507RyI0Jtm/I9c7ECQsgocVLgoEYYmgzZqXitlDUCO6x/uIpm4BTBewIQ==","shasum":"195df8135abeed0f347ac51a3fdbf72319dde6e3","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190320.tgz","fileCount":84,"unpackedSize":2163949,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJckYOGCRA9TVsSAnZWagAAIgUP/jzFDbkT+j1PGfixCDET\ncV4FmDvZL49Lg6z65gjixaOiwzNMpEOqJ084LxoPb96FWs/MJZTyKO2/Co5j\nzW44aE2XDeepeh0cdmaGJsDsweuMn8biYDkMwM6ONJnuZ1tPOUZdt89inEsZ\nORMYQCDHnIFOnbuI5XYmxg/51fTOw9xuOEb09gFWaX/1usmDYxxwnzmvd9j0\nNXnwO4IPsiGlD3xi7Wd6lIctRWfjcIQ7BRrvwE9WLMVw/j7+P34zuJshqow3\nYSO0qx4bECmgjamqXdk34fjgGmq9ZA0+GZ+8UFwAW+bxm6w9nv8+8ORYbqz4\npPfXymOnHnihhzgft1jDeVG3iLudBvEZtm4ScswBfTdl3ASgWtVex97nigZh\nanUXpxtrtJT9UXgfxB2bNviP3cl84nA5k+TZTGIuJj6Z+A8896rt+h6I+ESc\nGqcx6NJV6+SVGy9qtuuseibfXPN+FpXL2otNbQ1Fny5HX1EHZpz09LEbTTDv\n4rARSd/HHOhuzUvTbO/zoVVDeIUE3JW6OsyHnCBSz3BBz3n+MGAeTciQMBBw\nEXOiKtAPqjGqFMOte9lasBdAA0YnIaNvcluog5GAHFUhxL8fLoG5Szn/F387\nTA5GoKyzH30tdpjbl/ah44TGB96/7ndXLZ7wLneJa4ooSUdHRsdjxtv2O5Kd\neRja\r\n=Oi68\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCr4C1YBF+clj5idnPUk8zxZWbPqkoW7dM6ATgDfscazAIhAL4jaxs0mNV3Z/9hHs/ZH3YIkepcwMf9IpFRJ5ZuBjKu"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190320_1553040261710_0.7716283494358909"},"_hasShrinkwrap":false},"1.6.8-dev.20190321":{"name":"cherow","version":"1.6.8-dev.20190321","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"87b90ff2b2be2ea0b6f9557f9b8088222f43c1f8","_id":"cherow@1.6.8-dev.20190321","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-43BRSjh3tHku22TFtELENqx7v3u9LNhfMxWCCTIo67mD0VN/a+f3yty5hcYrhsn71UfqMcMxxKDuggRkTaJkzw==","shasum":"387c724a03729e8a5c5afe4fe7ae515f0980b955","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190321.tgz","fileCount":84,"unpackedSize":2163949,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcktT6CRA9TVsSAnZWagAAKAMP/A5K5Knr1jfpKPOOEKPw\nbRijNSKkbIfuWEcvAryzNOp+vldw4uCDsxIU0gyV56PALHWoxOO1FYS86YXC\nsMVI/oFJKYmeRT2bEIn5tMUav1btuflhpGa9OoEkTCRjLMpoQvGQ+1KxRUu2\nuU2xE4IcQc5x0tW0TPO7LlSXX9pY6+0P8Bnc8BXg5mslu3HzUgSH1CcWXMbW\n/BlBDHrBYYhm3RO+jNdQd4ePz0QckLiTfmo3fiWv7eBxBmdhd5rkzTHmjg0p\nUKpvUCgZlbFQypMg+u0j881twI/VBWfsW37irQKCYfxGtEAuL8slus8nhKlK\nTTKcySXxenK57swEn96gjmNb9yLH8EOWzmgRfRyn3nXEcYjybi32B8MPZCPS\ncCZsngibQtcuiWL70vN5knKe8MnZg4PyyN5b5kMrSMO5cordb2m3i46yP7Fx\nQnjPlbyhiGmwXjYI+09HGkVrk7rHRnNOi73BArU+0p44VB2rkv+c9X6FIlMC\nZwybUrGROz4i46AV0hIgpo/AMmnSmCu5Bsp1OkQSE2N71P6bkZH8X4sh+rOn\nzz29LgwbvDpTUtbGyzsX8LflQEftxKJnyTk7Xok8CF6eAlZuIp2B60UPXgsB\nLNjHkrEeWRrm6CKM/gzcEZ8bkxXbpfv3qMZ3sA8Y+rxEVdcqDEKXQAFMSZJ1\n4toM\r\n=f9yd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICmzHv1BahjN4rCiif2mudr6Eec52fxyhPDqGKNZHIPAAiAB65FvwPL2eQHpwBbTELnUcoIuuunZz5H88qCRSKH9YQ=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190321_1553126650080_0.22839966765389752"},"_hasShrinkwrap":false},"1.6.8-dev.20190322":{"name":"cherow","version":"1.6.8-dev.20190322","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"bbd4d3179009ff5b0a344b5676383f53c7793476","_id":"cherow@1.6.8-dev.20190322","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-0xcc+RVK5wvUa3sfbVYFyUaLXL8PWbTemj4bU7osFtzEQVepVQoevJpe9unHMGMbOhfzycLADlGnbRzSzmO5Gg==","shasum":"63bc7603b23dcc1d1f295e9dc9801d7015728acc","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190322.tgz","fileCount":84,"unpackedSize":2163949,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJclCaZCRA9TVsSAnZWagAAGcsP+gL4wr6UMz7qFf8LJTES\nqZn0qCEDkYAej1HBZukvgCeFUeSue5pf1bzmDEiI1pm2ZPS+5qIApS9cxdQq\n9hH3QJ3MYKQAAS9uN86LlC9iWyWEnvYY1xPMCiozibYq916KjrjNvIBB5T8s\nd/kgv4nbwGUs/zp0AMJNDTsfQ604G72kCi4SKnLHPcxuF2JcX5dA1/bzQLDg\nuBN5pgM2ak4qCSDeIXcpfKUAA0aaWk5s9cgFdCMoQnulgqkeuXrXtoikGtMm\nLicaWSKEuG4i/U0yM5+S9oFc2qlNgpe+MsHUoxmwTBNhUBz3OvML/BntV6ka\nmCEYogxV7aaKxLGCaD/0D1YttyizOvT+CItxv+kfbH8SfuZD9Wb3Wnn/q+Pa\ngEKQm1iKhINPm7MlkoXWbhH6YaxStvXuY+yAF4e85KGN0XHgMBUFtcfQw/A0\nSNqLw9FqsdHGL5KAjSBmLofDHPi2eQ5dHl8zP0tkEJ9A/5qjWFZXXGk6wBKq\n3hSTBJ4Sdf+9SpbUtd3e+28zTuu7LuB7006Fd2ULzQ9Ts0ayZ8LzgTiJgoXf\n+Wrvw7dfkrtvysP5HNlQeqMBgdGROo4fUoJgzm90RDhnuv4c7Z8tJGH96wJv\n+Ki7YXNclzsItdjoEkX2aLFuCpnVwAugzhfH5jpW0TMN4iE0IA5oHi1Mzj8x\nXT42\r\n=Ywn+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBdAPBYSEBROrUX+R5+SUCi4mdtCthMTdxuCi1UBWGrZAiAlQWhDOaCo0n4sJ119CqwMnUXeiFvcapkqTJzhYJrP5Q=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190322_1553213080788_0.5212713769368362"},"_hasShrinkwrap":false},"1.6.8-dev.20190323":{"name":"cherow","version":"1.6.8-dev.20190323","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"d69fa88841922bb7c66967299aaab78deb8d5616","_id":"cherow@1.6.8-dev.20190323","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-753MLrCe1jEO1VxhFbRxPqFm9z+LmexeY0YvkzKlgdqrCN8hDt7WpS1wt0rPdUsnmBVF1u+iufclu/9M/BEoKA==","shasum":"e83b18600e1c212ed59bc134253f5822e57e58b3","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190323.tgz","fileCount":84,"unpackedSize":2163949,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJclXfpCRA9TVsSAnZWagAAz9IP/ixorgM/ENFUZ2Ym+Rrf\n5r7z8673WyaVR3yEiBmqh1I9keHwciSOFNW/rIkHWkvka1o/Yu9HLmH895B5\nI/5GYvDGT7QTrj7Yb+cisTY2AYbRA0XJ9ZV1pzm2wlaT6PikBmMPJjQpaJsG\nj4UXzn+ORNyfAemYVSQAWJHlUFAncQw0tXY0EkZkmXwAk4CFnJ+6XSbIw1vl\np4NHD1uP6Ta9U/DvvgaHDenn9JT4EEhkpIXd88ES+mcnUrqXomh3tZnFW2NY\njG4KWyl+Pv4CjHRD9udiEad2kCZP9XOYCXWlRu7K+5nfTVUWRw5MWRyf7ROS\n6HCXVYyVMrIIGkLdh6MBd5rp7FHMCPXzyAsW/hd5hUhFqn5KLwsRpJ5Rf66e\njGET9KAEI87vP147RlHnePgWcyPIrsZz2EFX0I9upctuhyzkBgpFM1KI0mkf\nP/m0isiiC/UkSTqrmYogr44RxWv8mg9HWQYvV2o+QKbCwoAJI0enLdWncLuE\nh2lHf8sMGYlnbxfRtwqOKrPXJgduhJeFGYfGu1eEyoGIxGVqJjX+dtFMk4x0\nPeLlBrnCqHSxuNO/O5zG3QWUtkRv0EKWuqNZJMWADRLpSGMRpi1kEhAGMUtO\ntpKZ9qSqskbP9yOh3qAnRcPyxd/DLJPaAivOu873rDRNhxzKXSaDTIhA+XDT\n+gVY\r\n=G877\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDTh8bZ3tK+zyUJmmqqZRf2t52tBEv65adlDvd5hQTyWgIgQshBb4rxKd7hUeKg19lgRRi1qgc24m9gk6dWhp79888="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190323_1553299432150_0.708978419196651"},"_hasShrinkwrap":false},"1.6.8-dev.20190324":{"name":"cherow","version":"1.6.8-dev.20190324","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"6de190b6656dda8d8c6c2bde91249087fff03f34","_id":"cherow@1.6.8-dev.20190324","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-vfsIjly85mqPraDSARygb1nxC7G2Nv/SSNC82X0jVlOqiZwKuvCwcfdClBYDJdNkOktIgR+rWNOODe9hFTGX0g==","shasum":"4910b417f67e36b98ff8dd4c124cdbe7f363fe0d","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190324.tgz","fileCount":84,"unpackedSize":2163949,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJclssyCRA9TVsSAnZWagAAKmgP/jQSSCag/xg5mLBWYVdT\nbudiUJMEJz/1+DzooRQvTFhhhSnMEpVZ6cSJ9Dmu1oWOQnnw0VWnA55IEyw7\nNgoPRS5zEUWiiYSqmCnb9FRWQrSegKDOsml6At+uuC2fBIcINFYFsEMrGrsY\nzr6I9vlEHhaJU+comSL2g/QALD12BmWAUz7eQ2AjJSfPPKGxpU8c0LUzqqSu\newnWFbh0eiq86Y9MwURbWaUBbgwohfLmwEtYmrxkPlYJ2xY5hYMw5huLJ7ru\nuNi2cKDGnuBflPpUXTREIfgWzzLrfi5dteSLGoai6eBMyLcD7KOwwmyOS6sm\ndMX2bAwAyu1Tp+BLs0YTJPnXNUdyek9tea0jOtZbXTApAmY+dJc0919iarHy\nMv8c4f0jxtSrwY6Tl4qRljmToEXzl/iOAGoxHE71qzqMPscqIkb65upCIS4l\n5FYR7I/qvzVQ5k61GsaoMPiztqRybA3DVM+Ng931/uL0irJNeRL+fG0oPNDK\nkEQy5DhJpL87AI0QnCsEDc4OMFHuYsReXcUs6fs/5zlxVGSYdySL+P03Btws\noSLylFSpN4gFiHCXbj96Rs+C7jpdDgLbwBBdvbRTa77KgemmNVOFG+xtai6A\nciRlXcXX2oA6IFqSq17WKKze/Zh/KvedMxVArgsRswNsv1Px06s+JxVtqK3H\ngzTK\r\n=5bMX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFu/vK0UK1FLhAsRprH7VNzElnXUbsOM7wx9uFCS7QRaAiBSOXOXV5GVYsMlQzu4WRh7OpY2ocV/jD9e60QZQRuuFA=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190324_1553386289558_0.3011349132137744"},"_hasShrinkwrap":false},"1.6.8-dev.20190325":{"name":"cherow","version":"1.6.8-dev.20190325","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"7e025a7ef83bf9b977aa0c25f0f5e83d0e5d0a69","_id":"cherow@1.6.8-dev.20190325","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-qIR6Lx3aod2goSlPIgmDXYYDW9rMRSHJCoCXLOhE/eJNNN61JDk7FdIMoaD4m1rpyYemGi2RncAo23lwytT6FA==","shasum":"ec1e6cb2a2b49339d7735b444dd4e70891f2fec8","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190325.tgz","fileCount":84,"unpackedSize":2163949,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcmBsZCRA9TVsSAnZWagAA988P/0fvZgAknh05A3RviL7Q\nIXEYbO56vHBu0WiJNVllmS4cJ50RGzYxkSCz3qlqZAeB6GTC+KlWY3EiZUeC\nV2dAdUpC6s6aWy5DSECd3zjlyqD/iJ9Zsk6Wj5n0Fb2EOQDkNPK9egVDteS9\nmg5INAAQjLgtnJ6HB/LCfHFB/L3UAvxjg1feZO1Z/AQPPXK33+p8L3KkI2+z\n+DNctwIPJrGLXQu59dxVdKU4LIkjYfYbJFcosmw1iU6G9AjHyvERPnrp1RKg\nsvu/cKiqaDYpLdbhT1/r7R+opktfGMMR6PbXGubR8naf/2gfjAzMy8SbAegW\nLFFwHUZeIojW+0n5GbHx/r87ub8XcLPMcKEF9XwUjfZGb+xn6oa9SG1CXDNW\nuyY4yTKr3k/kNbklsSuW7VyfreWgJmtij1SrohWozWCHLvKd+lpqMk0IALn+\njDZh7+/flE2CdY38kNOhV+u6O78JVCaveiPIhQFh8V48L+Lb1bZd1e2dP72s\nC7LBwwR+ulv0gKpIxyGDCVCK51FTWBHRcdK+e6+21s+yo4wrZJG/j/7tf2kw\nZ3Bd9gPBkK1WtONat73cfQgAdyhpOx2bDTClc+TRTyZcBX+zLs6WE5JVLAnd\nfxrDZ9ab6DR4JYs++ARv1y/8cHjt17hpmqiyA5hnM4UkA8Yq/7gOfJuJGOOB\n0gbM\r\n=Jztw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCzvQ0UNaBMoeYh2dRprewDypXDDXhGZ9Com5pCzr/6/gIgT1qMiXKg6gAlHk4QC8vQNMehzrpQmexoeGX9irStVQo="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190325_1553472280589_0.12487147472990157"},"_hasShrinkwrap":false},"1.6.8-dev.20190326":{"name":"cherow","version":"1.6.8-dev.20190326","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"1414f337adfd7b048a411c2aad19c48d994239ca","_id":"cherow@1.6.8-dev.20190326","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-xH0iiDVzLVyZz6rD+8XUf07zP1O9x/rNvtprfLZrHRHqPuJQ2AJzlnivGuGM/rAF0VeSjmnJmhJYfC+EEKwFSw==","shasum":"b35fcc43182d85c9d75970cc8bf11a604082fb38","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190326.tgz","fileCount":84,"unpackedSize":2163949,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcmWyPCRA9TVsSAnZWagAA058P/jjBr8IufmW6rOUaoBMy\njNsW+GRFUOdeaAn+GyqkWyUXgH2EDe7E35+2T1BYXWc3CEcr2zY44qDw1hor\nFa62vgSiGL+Pr4RRHdnTuMys/qWug9xmqKT9vw8DsTX8fkKxpl+1mIvPiG69\n3NkFR29FYWMMG9y1UJmTcNBMeZG+toLBmECOQxr4NB5tPEElWwtd+Sjzn83j\ngYaJmit8qHdBGltGIFSS24gWu/LlpNrpoUIdM51dKLil30PgcQyvbl+FOtBF\nHtF9oolVdms5upDstxw8m0+bQs273b8P/gybq5JRXH1F457Rh4jPuPAyFoKd\nm2PT+LYBsUkwT8WgGxY/VKYTyNVpvX5Y2NNcpkU6ibyI1BuGfC5NHYCD93nn\nbVEV/32/WhxMA3xfZw+ShSUyP/NposnVF2FogQ8JetUSmw1t5l+Xzw5bG3OP\nw3dO4KXnJUP6rQJWP+TGqlpnqLHIbIAb7FL9SNhzv93n1AHcl6gH6wfhYrgV\nCyFol6D8571cmbUUnd+RBlEP5CzUn3sBAnXLb++M3P6a6yfLFC+egtWniTwU\n1W9fjDn7SAtgboj8fJyU3Ubsg+imE3Fv5+J1VYRhxjwOQgkn87ZPsQpTkjlL\nhWNgXWzAcXBoTZXHiZFobgHvEaflpbo2BsA6rI0GddNf9+mBDqga2DVNrqa3\nI2Cm\r\n=CvxX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDddER627zSBMr9CkbULgEvi9WhLj+dML7cT/mbr8vhOAiAm+/Bk3Ealu5JpxGMG/20WtNUdVT6MVj0FrRsfuTqg1w=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190326_1553558670711_0.9021394420500601"},"_hasShrinkwrap":false},"1.6.8-dev.20190327":{"name":"cherow","version":"1.6.8-dev.20190327","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"3b01cbd00331dd931ccb9bf79868b8c150fceb39","_id":"cherow@1.6.8-dev.20190327","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-zMdCiHi0//x7FnM21QinxBCPQetVRyY61dpquKvqlCVv/cY/cFvKtg8d6C8Jpq4wQ2lYicyJR9hsrxXH7OAtRA==","shasum":"66a29a3ce3b88e410c21bc53e588401b0523f7a5","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190327.tgz","fileCount":84,"unpackedSize":2163949,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcmtAoCRA9TVsSAnZWagAAIVgP/1dM7rN4Q1LMUJi8IlTQ\n+avLovTqZtosun9gj0uVSbftoX0Bfoa5DPojO2DfDyFREU2glQxqTDFi1gcw\nOslTtBaRbRJZpz1iNni/d+WPw4+Y85WzMI7URGw6UjKgBD0LRQ/MNG9IwcFE\nRUWe2YU6hcNeI6iwbY8Wt/ecXT+CnXYaboWwybvc8BCBBzdSdFcyVOZCmQdg\n99G7fDwD6pECBCZ6ccpQ5emEu9gcG4m4waf0iQjdSYh8A9R+bUhJprbgcKjl\n/OapN4Rn4rb6IBbI4F2HE+gjocgdO5rDP3lzbs4JxawFfJLUVDajrB2l/f5s\nsym55VeScMBuWNdOrBSy5uyOi0agYVqXpgKFp1k4Uaj4x8Q8JiqSGlNrG9p9\nzu1/jURzge35JbvIgVIBV+n76e5ECq43CobGrHRw7nJFb/MFep2ETr8CAXW5\nWjBQZ9ZQYx8+H6FpqWc4BKGH0qH/C3CY65iu/SXAONPg26qelzcR6amkOWJw\ntn2d2w9tT2ajkVeGrISreY2isL89mL32fg0kfB5k/KZ1qdrAZe9rYxS/3gSJ\n/gBalKymMCZW/73sNYZbDNLyFLkQB5+NUtsr+BeV72gwIbLnatzPn28yCEKS\nEoBZuekslX2iVsoQtweCEd6JO1jwfefEHf9SQZGjTeW3Mn5wR6pWX/cFZLEi\nZFwl\r\n=Btq3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDvZ9Pp+oIPDK8R/qaSUtBx+v/cIP606/P5sKgO8Qqv5AiEAkVLtTZBhjOhMDqlaHokLkocKq1yF8leIOCVmqLga1AM="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190327_1553649703410_0.3790297420466502"},"_hasShrinkwrap":false},"1.6.8-dev.20190328":{"name":"cherow","version":"1.6.8-dev.20190328","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"7acec4ff915f3e7340c40bb3b5a9d1d0a4fd8c15","_id":"cherow@1.6.8-dev.20190328","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-jtoBPiD+jctVhoXVRcethBkxqPhxQXSKzIY52xnIxcBdo3MDoJAUBtsJv8MLa769eJdb+wTAs3l/n+pR9fosbw==","shasum":"389a9241f7cf0572b8923a2f6371c2547b659140","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190328.tgz","fileCount":84,"unpackedSize":2163949,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcnA+qCRA9TVsSAnZWagAAu2gP/igqg88Ae4UN3eTib46Y\nVySIlVsuiKX3NUlHP84iZGU933Bp76quVCjeNh4FZZ9XVTOBfxqoU1ndhTwD\n9Mlh2NfK+NpuKOYBCt1sHgRM8tqy+FBaptjryFmIuF8w7lDQsRrLgqEiYKgb\nVV068YhJcnn2qxu2Bn9WBkHnPY4pcb0gSiZzAzCf2v0UNxba+abCCoqbAmmf\nFlMoIJDzRtyqjfDzC7M/HYRjMlqlY+UeEzuMLZCHr6pOoBX9x+eHxiobVpTP\nPwo7FbUjFy0lCnXYXB35HxyfYuBCO2xgxqwBfQXUIESvVVEG34wJ6QOu2lAc\ngC9m3DGcEJ4wpWtk+6S+6RPlz403WkpgnRbi0CyBTRTdQO3oNSxdjlM9yw4a\njh3drhFIrY2g3ltPfMCYZ8/suBLNkedDn4pLggcjFnmDNJW6FMn4nWypylu8\n64fUfq8sQWo088X6vxiKw+2YwNknmUIsV2heiReZNJGLeBOrBqt8mZm2tPAM\njs8UUhAqY14hxZcFePgQ4838UrrrjE4yoJsKpO7euorhVuUvjlWPw2lzeA3h\ncanWfhk4BczAKubBZ3m8pgnnow4KMhEIUABOaHmU6KFq56ExIzrXI5SQxvER\n5NoCg62hLKvfvC99wdDAumnTQtuX1258gYJeUPtLEFgk6qHzTcgLyyDZ+aYr\n1MeX\r\n=zrE7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBZagrE+Ptm+2B7WoTHHQtSxJ+JhdfXDvOnecIwocqNsAiB0d/ttWvlSPZLVoQGEscMfUKB6puXFCn+XGd68CS29pQ=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190328_1553731497108_0.22576184298664592"},"_hasShrinkwrap":false},"1.6.8-dev.20190329":{"name":"cherow","version":"1.6.8-dev.20190329","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"3d75f99291ffd792f165a47434f406a96e1734fc","_id":"cherow@1.6.8-dev.20190329","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-Y4ZrsqRuNUeFzg5uaqz4OzIRHF2YepS63LZxBfBpiuiNHMBuSQcBusQevmYQ/9Htg1PFB2pju9u/HFy1FaTw1g==","shasum":"a3e04696a30de0a14543b631e802b0c7e18e0592","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190329.tgz","fileCount":84,"unpackedSize":2163949,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcnWE3CRA9TVsSAnZWagAANGwP/ivDLraAtKMo62DcZdGE\nwJGJJcCpF34U6FfZQPo0dqjG23e3B3kQFgR7pJv3wmu+EfUhgZa5ObUCvM/v\nIL8dTw/y4gMivWhx0ms5SjIniPbgGR7K1nJtCdvCotvYlFkWglK/lnkfoQcl\nM03NMVh3tJut589VFYUSqGSiDKuLT9FdXwh4J0dE6qJEP+3bTJAxEYgGs8kK\nC5/XAXW3LgPh0V2EQaqUSGU+kDO5Xghyn6OK7EjTk5WY5wvRZYm4869BMOgm\nsMl2MdxpFdTNa4T5TBtGd3iE5hX5dDxIZubCYNOCC5zgC4VAv1XU05yC6+0J\nnIxCoDdqvanlHdmEAUM20mvDsXpERW15aj7itdm1ImrDu2O2UHMA0ycf2cCu\nNoWN/Bgg0fPgzqGwEPlzndLIDcfHCcgzznClZ/y5Yj/bZ5KGwWw0EjVLMeOJ\n8HpIBvpIuWyl2DVyVI4paPhZsbGVA/n34DAVjfoF9K8rZLjRkxv/XmHIi2E1\nortvoeau1pGS7kLKU9jIOsxX2vjjsTTa5pASEGsTsBThqYMQbaT266LAiGZD\nHiO7R9XKd3hEOqV+dM7nFVrpysGtInNGYI0VlckHrLSZ1R0KEVE+o2MlGHmZ\nF6AjJMJ4u9O8Pmbp4zhDE/I40LVs2tEQsUvgXigWwWDkbmJUL5W+2juWYgfD\nywP9\r\n=8HaD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEDa6SFkpNAcGnJzHbbMqVWmqbL/vw8obQw0ezsg7+A3AiEAlez8ET3ntqzuz6QYH3VNwW5AlRKZBSSH1JAGcQpJsWA="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190329_1553817910055_0.1500089720257236"},"_hasShrinkwrap":false},"1.6.8-dev.20190330":{"name":"cherow","version":"1.6.8-dev.20190330","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"294ef94891f382181e9ee20ea151b13685147f9f","_id":"cherow@1.6.8-dev.20190330","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-4vOztsBLMZy4aR6Qj9RlYU5SZJwej4ONMwvEuPYGIAB7usQt6GxGhA8p1Sz+Dujw3YabxdxIYFMDGOwP5vubYw==","shasum":"4f762273171a389df4217facf4e7c80c4d81d2b7","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190330.tgz","fileCount":84,"unpackedSize":2163949,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcnrJ1CRA9TVsSAnZWagAAh4EP/36o+XEbjizCQNGwYtie\nAM+H5isDz2JfLBAoQ/yjNxewopRn8S8CyriGrLi7oKB7UYnWd51xlVwQ8hvz\nQZK5NHehyhnzLt4T24Z2eS4H1pahzlXcmdLLM43vdQxYgpFS4Tj293QIhNQr\nV2VD2T/vxoVT29komSdyEZcxvqpeY2MVmzF4J58CAPWvQ6EASiLS1nXOOoqR\naDMdXj/Buy4dHQvhW5dFIpCjhPZKHkP5s0uKuSdaEfX2ypaxqkWc3dFPe4/R\nFUkDBt9GJdpR/lGTi/qjOsjgva1EUspzHDK+kCElspFuCepPEBLeNA8VRZXs\n7oVe7UK50OO++s2cphTrRIiMT6mg6H68NcA//+oFKL3bLuTCdEGa5Ven/CrI\nZUVWleQTJEUuJodQrvpuORy6qTcQNvp++rKpSyapOhiZU09j4M9YCbvIESR6\ntyTH+jt2cpNY3Jdspg7u+FtowXf18phgZMTfJSqjGE2Q7HxqTh+fP+j+z2Nw\n04SbH0nyPETDtedR5cUgDgT33HQLr1rq/rbz/ZmnTl5783kXiHQrUNr3VKxy\nTuzPafbOMvTWnFbsdwoC+Vw5IRroH3E+JG6mMMJ0fC4pw5OOyv5UQ3fJJtrV\nmU2YI9flDa+s5V/U0ONQPm9NOcO2qZbQXU+eoWXghQyE88pj0E8iviyPoRDD\nHbuf\r\n=Wy/k\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCA1QF5OqD9WFzftiF5AhsI9gkAMIKZM/KQ+JMUzCpQuAIgdecQH+VX+BlmmaLEMd03DBtimaMlj5DQ15beH7aXF+0="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190330_1553904244891_0.5439957305281897"},"_hasShrinkwrap":false},"1.6.8-dev.20190331":{"name":"cherow","version":"1.6.8-dev.20190331","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"d1de6a606f24547ee0dc106c9cd4f2a679a81498","_id":"cherow@1.6.8-dev.20190331","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-f3IVGFXuFUJwio1MbLYY+T2uNYO8fjXY5EEp0XSVi0PPL8h6Q3YSoh7mZjqTkuLGuLr2ISr1lWV8XWlCNb9yWg==","shasum":"c92b690bb183630825ce230226ca9f06572fc0a8","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190331.tgz","fileCount":84,"unpackedSize":2164243,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcoARRCRA9TVsSAnZWagAAQ7oP/0f5Z+yjuq9elmJiSqpV\nJnzbtgZm+9ul0xcIJ2/N7nGewW4CIQiwTMFhwBGSeqSGpty1w2c5nYQcbtbP\n3B0aFPagCobLmTqpXZwDJm2K1FzX9e1pujeHzlT7W01Czmarvbdg9wdloTKI\n25Q7eG233g1AUcyM+s4tJ+77R+3CoLuoHvUZ5CeROrL5h6Q3LzoQSjUZU7p5\na56bNIRwIPlDSB8mmSqVFrRRAy7ZzikYP/hkc5SbcmASHIqSoeQ4j35VYQPt\n9igu/Wur0eAlE8jtB9tS3r4gCJpTGFsYhMan0YR7fSQl1NVt6ngLgkThtdLo\no3xQMpf8KWfBtQ4Ea92TyAmOzIyEY4zRyA6HDT3RqeJus58IfznXcbyOckcQ\nV5H1YJi7lIecchC3d2TU0BJi/QUEIOy/OVJHicH4PThRgMQEjws/fIO+kCmD\nCNvuGBDPq72xZ6ztV3Dul/FIME49fOcvwEVxDuyP2bvgTASpf12cw9nLdJqw\n52fHwPojEQyOrW1jkqUhYYD4Sy8N4Q2wSG7jbdLJ8l5wPgiZyC7pjq80keHj\nXmoSzzNqJs0Dbc/GOiUpWKd+/PITpsccAfMJZvcPJPgtysnuXkza+Xp5+DVV\nsekXXdDkYu8+Kkw9JrHLa2GhPLY1pRz7iY8/SRH3Sq29xFM+0kx5hYCQVQsr\nfdeu\r\n=5Prr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCjZyay8ylIgHU7oWS28Nm9lneNujpAI82wFKhAl6q93gIhAKC8E1bzsSE5vOUBpQX2JE3bkMPGUgwhjlLwOIY4nDKZ"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190331_1553990736639_0.9714377954911473"},"_hasShrinkwrap":false},"1.6.8-dev.20190401":{"name":"cherow","version":"1.6.8-dev.20190401","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"3b01c43027a47a24b450582a6c8dbcdcc1433d4e","_id":"cherow@1.6.8-dev.20190401","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-t8kFq/+5F47FvmC83SjePKq1dDFk+s7lKZofM5oZEN/0UsaqMPgTAm/TNrQG7IO7WTGJrETDokOQZNGL1Pjl5A==","shasum":"6a0c9d5a63f6d6b06b49249239549f7cc975654c","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190401.tgz","fileCount":84,"unpackedSize":2163398,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcoVVvCRA9TVsSAnZWagAASHoP/2r4hym6rCf6VeBf7bLh\n+egS3ounGZoI9joL766sFSDnH7TBLMr6UkkVyPy5TryyvnTq0DILfKfaT3Sv\nMvC7bspEihE3Ql+PEKqNCGmQWsUhXvGTnKmP4b68TBvd5JnJY2JHUtBeIEez\nd0STnrJVPPX94DypFoj4DCius5za7noNt+WASv/pfNZFq6lrYIw9XHUk/9zC\nPW6nCaWvWoAujcVjtVjrO//MXpcOKbMWdRL9SBUxmCq/SFZbLTKC3IRO+h4+\nYRUkXOPeyDuR/y3aEzJfVQ6SZdT12eFqzMa9HRjojQqcnoz9gDjBqInCGBm7\nuuDFcGAn7+lenMUqcBMKYMSyq2VsbD/gae6ix0lDA7plUgnv5mttVrd0PeAd\nxmt1EJkWe5FKy7QY6Lja52b8gC81/kpvulHPUNcO78UBr08sMdNrAKsjU6hI\nApw86PukkiwpNaeutSAfDSesL74zNrqiqPT4nLvZOpJX702FZK2ZQOt7b5YW\nIZwIaQOJHf8mIq7w/2gzHBgSygv4e+zrcAq6EIKgNZDwXz4H2OG+PM+QHUYt\nXY3aFGqjD+h23iqfQCrAeDM7gYHb7DkdOXqTyU5gRDnXFXrbbD/swtg0nY2E\nVO7og6Q4jxvNEb3wxJ+4e974eSMbeFvk34PHjLiwL1k4NosqxRJUx1mQapkb\nIGNE\r\n=ZNsj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA5uMR8T6Ra2gFTtajv6afBChLcIvyt36nkcAueoz9AuAiEAwtkhknhETXf6ZlBpWTWFg0iI7GiK9vgQofgx40p2tuE="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190401_1554077038281_0.6063465413741853"},"_hasShrinkwrap":false},"1.6.8-dev.20190402":{"name":"cherow","version":"1.6.8-dev.20190402","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"ef42857f24ca34f13dd7b721c60065da5f5c6600","_id":"cherow@1.6.8-dev.20190402","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-n8gPA/ZKLhYh5uNI7ls81I7I99ujYK6nCqDnXVFwDDZAD8eW9XG6cRDUjEIlIUB5n3ppZpqeMt5pnRDP0m64Qg==","shasum":"661001da12ae0cfddeda9fe3241372636d3ef110","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190402.tgz","fileCount":84,"unpackedSize":2163398,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcoqesCRA9TVsSAnZWagAAPMUP/i/7pzIvSi0MyL40HBT/\n8MwBfsaCLMn/BAWjvzlJw62/+sFqQCaeWcq7x4VCJqyOJ7gMsMVT/mAbrNes\nhb9P6eIJpfTLPUyMPJWho74VYOB0IBLHJLbz/skBJlLUaLmw6oO96hkcZ+e+\n5LeVt+gTqNmH48JKPblL/OzVoL89a9q71QyEBnioz/jtzoszJAQA+upUSX2j\ny6KsMCrX1IN48nU5v8HVwbC5m89Q/MqMkjHYq/WrGRikxEY4JkuyTqUXC3pG\nhrTFoD4AfbjOS8hZnLhYJssb6k7NQDnGgK9a6Hr+VUr1RZFZHDrMl/16TJlj\nhdVVKYs5nseHgjjNPdi6C4ElaSwrCjFdmCAiQ/ORcUkLGF6SWtgtyRfXg3h+\n95MPnrH+1lg04BjbKlgMXD3bgytVQkLPTAGkb+iKE2Jz0ezWY5afF+KktTWm\nkqiX8fSZUW6jJOr0qOJmSgyktFK63tv1jOWMtnTrsW5McJzIFJj4nfFKDfeV\nu5BMMn9S5+dhLCR2gmJRmKxAGS2mmAP3C0UlpbnXba8kRAUvB1zobZBmQZqu\nxJS5B2joyx0jLbAsrDP9/h7nwii3pAsZ9lo4iUdZmvJcm/9bgrtjXOegWt9+\nYU7gRKMIDHgqG+47bbEl1p26xdMfqasZy2NyEgsqyzPHHaKQ1CGWvoOscT04\nVVxu\r\n=CJAd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC8bKb38CR6nkIUyd6Wd2T19HpG/C5hYYYQglvXZFi3zgIgAa9kWEJRYxdLnuc2MWxSnrXM7ZbtWW0DcPRc9DI5BCo="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190402_1554163628008_0.8366921378040639"},"_hasShrinkwrap":false},"1.6.8-dev.20190403":{"name":"cherow","version":"1.6.8-dev.20190403","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"c2578425f9e2d45593e2fb6da1f7304aac594fa9","_id":"cherow@1.6.8-dev.20190403","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-l7qp0qo0GckPSMIhH77I0TimDmLtCObhj7qyw8I4LNFJR8+8n8DUAw3TkJ4yQ04Pvd62JqEhreAK3spSzAf9zA==","shasum":"4a8e3fdf144c9c5457b9c1de5c3b4c3133a01cad","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190403.tgz","fileCount":84,"unpackedSize":2163398,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJco/rVCRA9TVsSAnZWagAAe5YP/07+wt3Ihr1AO+Pj1A4H\nzaHOuksDkJgwV4Rv/rdynWEgW9tEotahmO3gea0jkmaxkNsG2Fv4zL0gymHl\nN39kQnO9qxT1rRb98ZzKjp/K62ZEDxAsQk1hCsMYVXMxYr7CCln5MP7ngRSs\n9raHze5S6uh0UL/0hcBJY25XAvbi7TJMp7+Lg+qvRHU7eLhpSlj3hXDXVl8f\nl+JDbPmUjCPrmkGeAroIe5tv31taxd1f9CJ8JQ2AyHhfppeXW2xbKqXHK8cA\n1JEvaZZoUyORuY+ygJln876qsaDgKDwMsYbc9cgmh1P6iRi4Mvi5okBoKstQ\nxosI3H04l1STXxf6ji5ZX3lILJSVY23hLB5PgL0H5Ah+kqIek3VWzbwDFX/C\nVnCVa+aTel8hYBU8zBFiSqa+L+IsAPgMCMCHpv6Xop+EUooExnmJUxLUL00l\nvDHG3aHCF0kcyE3i/gCDCmM30G2DPDNLmETP5pHE1WQzfKx1dBRxtMVFZekg\nT1dirDic/Vl6lHcvfURcrUMEg2zvMCB+ZyfekwWtbKQI6CUue5YdEAjtDKnQ\njvK+eszo+xHY/R1kUQ7fO0V9EaSthnbpQx9cL+q7YYg2lkl9kOfPLcw2wrcl\n+LikFYaqx4rbtRaqdu6WlLqizYbosmugc5CAxawjfLRcMGfMfmly872iFdO5\nwDnb\r\n=bAzW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFE8i2b2862KZ/H8ulfGww60aXoJGk7OssLVjYsYwduVAiAflHEs//3YPn8/Yg3FtndZ13wWOqlI64TEEUweOlMNYA=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190403_1554250452716_0.2572875341236589"},"_hasShrinkwrap":false},"1.6.8-dev.20190404":{"name":"cherow","version":"1.6.8-dev.20190404","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"15d706b0c557b8332e41e6c8343ddf9b9ebc64d3","_id":"cherow@1.6.8-dev.20190404","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-xZ25nRWubrqZSwY920u8BTF8F5nAACbEg3M6tz+DE2xlqRBqL1BAoDkC5RPAQUQfKO4yqAUwdgJ+wzsGPXEEzQ==","shasum":"61242455662faa13d461b74f903878871af1c50f","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190404.tgz","fileCount":84,"unpackedSize":2163398,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcpUpFCRA9TVsSAnZWagAAxLQP/A+pssqdj7LQgr6Gipj1\n8aW95YWpZgwCnbBFjauU3QdIONj1RoMv2uIHzVPg1w6sZuBW54KtS1nk9WFw\nMJN5GzJzpeuTKJm/qwgzL4jEaqhcFyf5FilOazhOTYHiQB7v4QK2/FCkkTpu\njWzNGKE7CBndKKOUREuQBkK9guwCpdHKf37R92RbuaepNLN4z9QN6kn2VKt9\nXLTVUITrLeiThc9G8gaXYntJ8Ki9d5dorNhSxkSmy5QwVT8NXvqkwLXCrbvN\nejQVLiJpYK+fKguz3Y4lRIecUKG6lA30yqMd8OGmVi9MQjmmrpBvfkOWIYL0\nw6Q+XYJxaBXqto8qX5OX97xajxRGPSVJ9zrOOg4Tkc2P8oGtBkHnNthddCLT\nwpgGa1Wh/yqwLOKbc9fDO14481OPPNh7PL2IiSN2QiC3rjezhA7Mhp1kGyYI\nw8yh+4KQh9Tp2my2P1z9lnBiP7EDDKYEBJZS5M+YrcjsiauVTn4DcV++nhdi\nnwtm3WtnBGDsiqWldEzgScILBz4cCjEGTW0YLahypzLYrvN0lCxbr63bBXWA\nD8NvdBg/6B6UcQ4mm7LlartvXuvQ7xrJ42P8G8/CFu4UxawZdTWubkNJBrcs\n655T4usYP2eYcpzlW44VCG4kbuC6PgwNdsO6j10NJLn+4v4jwONvJXDk7TZx\nCIZo\r\n=I/aq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEKDqQ5X8pACGhoQKajwrbzbgxVmSLJJbeGzg4V2gGApAiEA69aFx7iAS34bbc0n+7rmhwWm+ukx7uvdYHvbz5GR5FA="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190404_1554336325022_0.4065732957592598"},"_hasShrinkwrap":false},"1.6.8-dev.20190405":{"name":"cherow","version":"1.6.8-dev.20190405","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"dfb40cb2960b000203942069a0c9adbadcc3e392","_id":"cherow@1.6.8-dev.20190405","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-v5ZdvDGbdbK0qAr0NV0yVa3BbFZ31ZvuFmHLH8XFoW725WEs3+JmDadB/iEWl7ZyNeiI3un6dhTqGIEn6Y1u7A==","shasum":"b023b11132e4be45ad156423470e41e0d55da9b8","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190405.tgz","fileCount":84,"unpackedSize":2163398,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcpqyzCRA9TVsSAnZWagAAoBEP+wduR0xItxjg3236Ca5A\nZ8MTzy0qJ/iq0qMI5PcQDYmpi6s6xJPoudFWHcmmoZGwrVeUWq6OfJ+q1TUb\n/PRL/83yb79SC7/XbR4X9CTRx8l42NsevjzUcdfQhwK57t2LA/pt21aK8dh0\nXtCclJxsLo3/jLHhpKkm5tD4DW317Yhnis28I4L7kxB1GEeO7KNLmfGhboi/\nBhP2meLzzjZfi0jRvoCoTwxOBPpAbmaAGk/0fd4qBaqed/MpTcKgt79RbQyY\nvQiPQqylX06iMznE03Lj+AnLU0NoW5w6dGPPdMSfAPcZ3rt5HSfpFH30lK2A\n2k5cPrc+gRo9E64rO6z7BOWEuFK/pOoIWYQGNCRga0pc2BxsqJZvjHObMgA/\ne/1jNOVujn05ErLSIunTqZNl+QvKYAoRDG7ool8ZNWxEVNzA/MbzyMnWOitA\nLjDxUq7kjtIhRhFISKfx0E2Td8pujOlR0txInLFdhS3AH7ngr1zln8MI+gqs\nBJISLMdvdp12rQD7iIA1z/fyUvlwx4k+Rb/Hzh767cV2VUNp4+q1whHxLAL1\nBFpMMEi2HWPLbpjJpjh9uSy5bDVDK/XZf+7CJS0SwbPJCGid7/aGM2Q+n0Iy\niF1peIoUfYN+OTLsKpBkREIllJQjvjk3Gi3a3GSemvUiz5fzvNqpDXPwc1Ma\nr3XZ\r\n=zthd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFUTxhj1eVLDaHPTsJqEYuZo9XUWaC1dxrAEWQH4Deg8AiBqWuXtLzWKXAllVwujEaW2+5F8lGY1G8okssRmqUWfZQ=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190405_1554427058456_0.45914482813166413"},"_hasShrinkwrap":false},"1.6.8-dev.20190406":{"name":"cherow","version":"1.6.8-dev.20190406","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"6bca6ac9ba7563c66f9191d8de770645a8bc023b","_id":"cherow@1.6.8-dev.20190406","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-LGPS6aqrcp7J9+SiMW6z8HkKVJxifxhJARXgLI1FJ7z+nM6sCVJ+vYE+ogN5800dXC1oWL6L2plqZqX2yjc6rw==","shasum":"cd26e7bd06f1bf6ac8cb6d222ae7e8f28eff0963","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190406.tgz","fileCount":84,"unpackedSize":2163398,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcp/CaCRA9TVsSAnZWagAALtQP/0NGzo8PaCbqWKlpDry9\nu+j49Y+njdS1tlaLjcVLZzMZ+P9avKEvCqHF62eljqiXN2+FIeg5OuQGxT2d\neeos1ibM5CRLXPetK1Db3GWXNdHdsIP061NRzag2ZqOmrNnANPO9VK05u7+W\nENYeaKeJwcECjtoTyrgbTcPH1jHieJSYCfAU/qenXd33PQ7BWWXrGk1PPhf1\nsMmKEWGE1MsnNY2+q/SE2yfz2X5QW0dskzcc3ShCqrBaBRwuo7vsRg+Su227\nYx3hIUSzKOxg3hpaB6UYHhiTyUzg0LyX9VemsA2/sD/c8xcmTmM1sHvIJE5C\nZHkuuvRQHXWU8fBHbRWPlbD/DqAcRDAZrErBUNcHGvu8W5LdcwvhFvLvqzbO\nrxnT12A9CvVPceg4HSmxwSfzGgRIgmedhf8sbaNrRgF+BLRpTjv8Bng/y/T2\nw34PgABjO56mUbhOQKTX6WRXTlJT3nIYl7MCy/rhFNMl3/BNJ6p1Wo86gqxw\nRd3G6bpGfnS4l1++On62S21jmak8dclrSKCfmE9lhYX+KhEVEbqtkhdegK3F\nMQcWK8aHcUFGA7PvsBWqGPERZqfXTfSj5ruF1e7JGGJG2UVHFEsGPlEpGk4m\ngy7esK+GdZLjTjoE8HWEAD2PhOiS0+KV6UegyYU0i3CvneO8RWsiifo2uf9k\na/ZQ\r\n=1kF3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFc8QUCDJO/SQwKFhhEDeN/emN9Hq0JFbd3l8ZevfnWsAiAdqHHkaBlXZ/ReIrXHU2fr/1DnCacl+kKRALHjiEtJ/A=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190406_1554509977638_0.39956018767050794"},"_hasShrinkwrap":false},"1.6.8-dev.20190407":{"name":"cherow","version":"1.6.8-dev.20190407","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"7ac7ace02ead09846a0a42887f5cdb51e57e7b5d","_id":"cherow@1.6.8-dev.20190407","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-pde18K5Al4yrPX0/KthBdbZHPBaOIv0gouafKKzlHIyTR2Pgj3EfV7biGg3bx81+qRhh81rITUita97rhSi8VA==","shasum":"246219d5fd43b5f5d871edab10fbadf57ffac261","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190407.tgz","fileCount":84,"unpackedSize":2163398,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcqT7LCRA9TVsSAnZWagAAKRQP/iKosQurraU/4xTLUtNK\nWn3tY2LjHtPAkS+MM1ZTJ+IrFTKDyqGdlXnIG2dHd4c+ydLIpcgEPN46W4hh\nTMwl4Gk391k+twNCMSAZO771C7U5NmwwyYEq+AD7VVCC1h4+WLMlqrqGgWyh\nVk4uGi04RQ5s3jeMATb2B6lNFhzkb2rnDV2lsnYcYEk1TAiZf3MVI2mvLDDn\n5iyX/sIWS8r/11yevSrhBQh/5fYrvUP7A2O5rUqT/sQ+RrBE3cU9qn81Q5r8\n1WXzyx/z9qPkWLFOjjfYymyDPlynRxeul5RYmMVjVfNrsxYtnWHVkKFopzkE\nPBjzZXDmf13qdrYVi+EeGQMbeBhN7MavhxBeXPQm/25lPZ6l6fBHLKSgMPF4\nqZ4SkQ8aZ6aawLRmPsLKJeU+W5ZnZilI2vQgTxqcUYZ2OLoN9D7mMPRWjrUx\nCbwnz8RQCMH+5UV0k5D2A3sdoAimy4ehc+2FUYiwnx1rEiRyq3MC73o/KWb+\nWt2ll/4BqgNzSWpcVOCaDOKHzlrQKN4OQGPY586yND5Fr9J7CnhQRdFagGAJ\nkrU690w/hMhazprFIYvfWH/8h9af0k9Gndx+t9UJfwe4iW1sRs0Oq6BDR833\nIniAET9v7W2wmrqs5nuzHVYx8m12yGYf2g0PoG37W8pLFzKrxOeJ30vTdTGT\nNQ+2\r\n=vNw7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDAAfO3AWgHQiV9JNM5AkyJEvOyZ38BgiXgOB+vXeerOQIhAJsMJYADebFeVVWSWvWC7ELASkCaqAAr4h6cvXhrwy6r"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190407_1554595530805_0.37528379072216334"},"_hasShrinkwrap":false},"1.6.8-dev.20190408":{"name":"cherow","version":"1.6.8-dev.20190408","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"6cc046a1ffad6685d985c8a5124d5145b5104be4","_id":"cherow@1.6.8-dev.20190408","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-KpbEFOXuIhmLNV0WuuHn7nYTUCOWtYYkRKoawjbDdo+UWXVOaDTqULNSiW9KtdHapAm9vV3k7xwTpvUXKpwHOg==","shasum":"fb1b3854b971356899fec853702a03018ef51cf3","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190408.tgz","fileCount":84,"unpackedSize":2163398,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcqpA6CRA9TVsSAnZWagAArjMP/izK837Nsiav2UbEhCNH\nc+kZpajuKZk/wPQUtw79RUEjRYJn5VexLDOZbiHBfBc1F1ljv5Og2zlgzcAa\nOPLm93fmuNzGoQQrbjwT5B97tAdmIv2YbAfYzdMM17gWFHiSqgezlQ/Okkh8\ndRXl05WZBZBJ9dDK8wbnDrSkM1aKGcHKYOgtZFYxpN50AWSjO9Hft1HlO0gX\nubvPGb6VvZ7pxg9OxpwU94dH2Cji9+mS7AXkxzH/uLSj5eGg45HskOccR9oi\nUIOp6p6zOu8qLTc/Q/IUtGEb4RulBWzxSvvaUFyIHYYY67bAbiIjQVkdixvy\nu8iFvSbU8lmwJ+2iT38OfMfiSjh14+tcM7vTTgcusw+GsWEThvYTWrgwYR2b\njDmwx15XXgeX2iuUOkLAP4/MYnglIH81HjYqTt6MpPCjVpDIczTLl4KUabPL\n9wGCVclK0tE/OaEZEkbwyAoHIzQEY/XwdyVsogmi+jU7wo78qGvlHNGor593\n38t4c9zPvQQ52laTffq1P3sxZ63j5nEQWyVaCbj2QDhKEhu+cxQVWKt0p2he\nlArPLzFpLJdr7JzMsE/AWRKoK3/UPCZiOcy5aCvBsUZqwo2MqU2uJDderHlx\n8VmVClUL5QP+ivDn3nfF+Dvia9BwfiZKhBi7PgRSZikF9QE64/oqrVZhXqiR\nwfIH\r\n=ggQr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAxFZion1aL3InBbZn4dQrNJ5f6+2wtaWD0Ta7q6qVBTAiEA0FOX5B7BL7EDOTSNktFIaUkXEzQHZmdB0POoyWf3ifs="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190408_1554681912367_0.4711597720303722"},"_hasShrinkwrap":false},"1.6.8-dev.20190409":{"name":"cherow","version":"1.6.8-dev.20190409","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"155848d5e12f714c444e97f3e6eb128c87a52c10","_id":"cherow@1.6.8-dev.20190409","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-QZ738d7aPGE4uD/e8A2XbfvEG2XDtl0CdlqUkOb/iOAtbqrvY46kqxKc8Ke91Ya68SpX7WfC6xm0KXlog4Falw==","shasum":"f32e8981859842a855f0c0eb5e07ae3229a81c4d","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190409.tgz","fileCount":84,"unpackedSize":2163398,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcq+GTCRA9TVsSAnZWagAApjYP/iSA1Fy66+d+0uvTZKyb\nmKiHJynbTqLu9wPRJDzLZ9uRUU1hR0Kn/juMXhjexPIwOTTOjOGA6GMMOFIw\nGGcm/TvUv87FmUX6dgGTebKHB9SXqD/ouMo0oYNRYE7zYSV3nGya4TSV9Q2K\n/Hg+QKVIxJKj/SQgA0uFTYgllJS05PbcqnoBi4l2F5b/z5yNDpo6UxhedZqh\nWkbsbrscBWOTnRurm5cou1gHwIWfE8Gcn8EvM8oPVOvHO6TbDJorSxYDctuo\niGnkO77WxTXFm9DnqoDAQqn4mkNg+rLASIMW0TtZ/HbQos5wam3sNcR8XEsZ\n86n3xrOTu7P3Z+srH7Ickk87YxExMFkRHld4fl/xuC68n1CE5eD6/2giLY4C\neP31ZwAxQbLoh9k6Is/C8/2mga2NtWbvcNf2UjmY6Ippdpm9vmsArCLoVvXX\nS0Ous5TdK2I3/Z5ZPAu6fDQMdHxN0XnP9Jdb/UfRLdV2x6oMdHKS8k9AVlcl\nsfsXZ3LVoAgIlabjm15Pg0oJqQYWIqawmoAj+FLuFVgR/14Ug3DWN1cm1XCr\nF/8OWN/5y1S3Ehs5Rn/8su23cXL3yhDoq9DAiZQNBMdUJeNlqinisPX+6/rR\nTprbITDM52Gqf5cmt2ZpgXhUJmUq72r/pRK2j4//It8QH4pa/APb6wAhYvVQ\nO81A\r\n=SmL0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCJOeTFg0uJ2yxAvoo2c/pyQUiZFlnMPYaDf1rS8DeYbgIgSbP92k4An5sqeLPhwhcZ9f20P5kGRIGiTyTkAfgLHVc="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190409_1554768274417_0.6494303054451842"},"_hasShrinkwrap":false},"1.6.8-dev.20190410":{"name":"cherow","version":"1.6.8-dev.20190410","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"2111c189424279558d8cc5c1164b0594904e5016","_id":"cherow@1.6.8-dev.20190410","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-wYVx0jZor1WrThiT+/4o2Mf/5MYJaiPqUlI8/yICgEWqaFro2ZVnPx+lbCvjPFgtfTXaCIApveBK228Pvd00pA==","shasum":"68f78fb662ea172414318c87b8c4146570fd1592","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190410.tgz","fileCount":84,"unpackedSize":2163398,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcrTMoCRA9TVsSAnZWagAAGzcP/14/MCABf9JW8jR78sIO\nHbTHTQzgBSH88c2TclWs3rJOLli3StJCab9zXbO/gm0gYtApnypFb3b+Boxi\nQxD70loOEGEMuTJYuR/k8/wTO0hzzIeuq5zRZAwNpBDKvwE4sC23EWWGvnjb\n8591TK//GktDnDLnXmoVZQtMjplLzWmCTBzFEhp+JA7R/0H9UCHpHNL955uT\nrV9LihyFbgw8kiEl1iELrsL57f9v2ILH8as5QZsNdX9ORrx1IesCen6xRrrj\nDnjBgx26uBSHOwTieGW+KsD6p0PyBBpzXLjiMNY7XQQyqzPOzZIZGFqoEdsV\nRYBewY9DTuNx6fFiVhFLBjAf0UDChaQ86pyW7Q2B/k8agxLvk1T4nDqTg/l2\n8IP92A5hcLGqZk8XlqVNk28vb5bUF6uWoTJYbgsxBcqjWQaIT9lTZQ6rqu5Z\ntOxMAkR0vwLSnx1K0BzC2eMG2JRHe38mCzqKR8BT0usne1umtr36Z9EXo9Ek\nQUzu4r8tK2gMZhQNXwKdm785uIQFa+t4m+witImw3QPrmaSS7rOtYJjtc13M\nWnfjF+tQAmWvu7Eu12PWl7UcKAIg/6mAXaNy0vu/Hfv7KAs7egO2mPLB4NQN\nYSNXyXa1xxt46cYMpBMvGrFhM/Ar9BPIDs0/enoCyPPmyTaXhvatSMQ767Te\nbL31\r\n=ami5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCOrwgMp36ILABbZ8+gnqKygSAgbEdBjLvlAsI2/sQqNAIgF2y2nEKozgoYKQxX6Adi/YIM+IrKm1h3MvATrus3j9Y="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190410_1554854695723_0.7187189167159684"},"_hasShrinkwrap":false},"1.6.8-dev.20190411":{"name":"cherow","version":"1.6.8-dev.20190411","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"d3d9c86f24c40ada9c3a577e8a40db933bbe2ef8","_id":"cherow@1.6.8-dev.20190411","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-+XSyQCExZduNDMWkFpupiRdTSF/YLDcPFCGO5aOm5nmEiTyUwImZFSQiS7mMV2dksJxuHOCGIsYJc5GxgbtceA==","shasum":"78c62ba04b36063b374eb4aa10e0fdecd86f5265","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190411.tgz","fileCount":84,"unpackedSize":2163398,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcroSjCRA9TVsSAnZWagAAPM4P/0g9v+L1jOqlS+sTgVaV\nT6qAT7tJWZ/1sDf/wXLmYdxgXaaJJBu68x0zVonV6LJJAPX3fMgeEfs7HdMi\nJ5et8FrFfypWcC+DrI3pih+L7b5ErgG29G7ROrpbTt2fIPcTAsf95ZRmr72O\nbcM64rA9DDs1/3tpV85vfi8YqzSmX6j9zKJfw90pNxCmgUwXnUAWRiHxCXN1\nUDrQX189OEJu6asMaGVsq+C0SLPodo1RchsMj3pZjFZ9ebL7wD5PHxROjYSh\n9xdXwZkiF3kmLdpCsiMd4aLhNELvKJoyp3+2u/iI473UJ5gIKG0PM184gVOX\nvaxzTVBnxEaVErjzcGO5QYqVLv399ueNn/uFKrxGEzqJzY0q+Mc29wT9d7Q5\nbv0hv/nbCHWCTB1gyA+XS4Sx2Dg0Q1gXlMy6pP8nS+CZmKimFk6uH1bBjuP/\ntSIkM0wVTdQC324fWxPkzLUCTfIl3zJ/THIPmwbBZpgy8IJi7alMKSv6wxM1\nBcn7yWIgxh4lN8RRlBH5UMRcBDJ/QzICh6vkLUrbLtXuVw3jJ3czy6yg06Ta\nPPQ9M/V0K3El+7D6ySdWTdug0a6iCNq487FmIqXYpBFjdz16cTBzD5OCj5tE\n5Qj8+BFUU/2AkO767Qui3u8tU+tzpN+yWPTXx2OXNkNd/2TkNOA15ZMzNOxP\n1Ou3\r\n=SQkL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBHM8jiEj3KKydaKImguXs4qoIoH6whDS675Vt45sp/cAiEAh892lAv7s4HMA54Sx8YHZoBAmkPjm9aQ3F7hE4EoFQE="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190411_1554941089490_0.2904257393805334"},"_hasShrinkwrap":false},"1.6.8-dev.20190412":{"name":"cherow","version":"1.6.8-dev.20190412","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"b3702502469a20a06b16215ffaf9a31c493af592","_id":"cherow@1.6.8-dev.20190412","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-XTBP/fnvJ9sDgcgFhQqD+8wSLFDIkJvZQh8hkEKGT2kzyxfrLlox6LtzxnTHqhRo+FG+0+CfIg9flWrn/+W0ig==","shasum":"4081cf90e0b261f455e91f83dd73a67f500e52bd","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190412.tgz","fileCount":84,"unpackedSize":2163398,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcr9Y8CRA9TVsSAnZWagAACbQP/1loVG4GW9k5BANziD86\nwODDz0RU2C4NBIOQZUEq8YHuGFwU/age6nnFP32Tonx5/eh+NTJGTkNqV8DN\nXOQjV7tXd8pEVcgBDUujFkrDjlVe7F540OaKepaVU7bTkSqoYtYUtCJiICHs\nVuboJCF+QWy/5NJAkU5wZe0N5dGxO4Dqt++bVWPRGGMcZtiyHFYVoMR+2rCX\nT2fRJGfhs4unN1+IHcg7rfgTqbAnAqqw1HYGEJNGk6w7c3m+2uViPHu3F/ur\nk6mGZo313IABLIZyjtm49aCTXeZveDCulIjdqhMfdeWRirPDCY+Ykwu+n/UQ\nazgXOesiyoWpQtBczoRrOBfC8wgDaTnVU6ds2S8EOZzKUvedYAkugcEy4UxD\nx+OhQPqPBDVrMNJpiTMLB5yL2zDA7ZlrZv/mlMoTFNXB6uAQe/OPEEwKG59D\n95Aze33xyiXYcRQl0AGNe1973jBGoQPfQ/wtcEIb/vf0GyoVrd3q1uyLwNuq\nkIWhYokZ41ofteVHBr2SKDt6MibOUe3XmCVQreqZcBZpMShNpGXMl2O+BkYe\nmkHqYPLKQT4PNX2igMri3xJmZti5vQKLFphco4qZiAHEuJf5SeapQM4Y5TVE\nDO8+Yd81UhJaQuAn6UtoTvITYVMq6Uoq8++IPvovRDZvKblAzWSLgDg8+XYh\nvhrW\r\n=LjNh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH01NWhbbti3tuThqOYuXHX/ivv8YFk9XU7HPC6/9Y7wAiEAuoFYJ1sh7cc3YqmvDJnwQ5yWAZxbPv9PjLiBWaSJoMs="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190412_1555027515256_0.4149566360946937"},"_hasShrinkwrap":false},"1.6.8-dev.20190413":{"name":"cherow","version":"1.6.8-dev.20190413","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"620ec5166f8699150669633699fa214a2cd965f6","_id":"cherow@1.6.8-dev.20190413","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-Ck2o9AwPSk902XWKl7P4P7Enq1tLLLwUE9ed8+tVaLyTlEGKHTgh8SdxPo0WRtuz5aBycUXtm0wvzD5z63Xw4Q==","shasum":"d0ffa17ad1c01a1bc0bbfb606418aaf40170d8d6","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190413.tgz","fileCount":84,"unpackedSize":2163398,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcsSeqCRA9TVsSAnZWagAA9z0P/jV/WwYZ7O2gVv79lU+J\nxejsp//1ropop4S2HzLt5Ra0X3uAKDgXQnr3sCxHVA/CkcORd/Wn/2cZqgns\nnezN3pVaW8AKnrqwuo26j1Ez0c9f6aH8jvixnv/2/mGKuSZTHhk2ty57Xf2d\nWuzRsSZJj8vhoKF0mxA8TClpGYTtcyKL53HMlUX38nPXdhZX+gRRwjYgn2QP\nQiAHdm+s+GoMH3trDwpnwHAQBNq0DECjFa4S+UJHFjGReVZEcfrsjM1zV91M\nNcIL6SMtkPYxpyU+4B5/JbA4p0JuRJV/NncVMXpOgQkNAvINK7eW2h5zAkHl\nAgkekIr9ztlbz361kbFuXqcz9dCR6siXr2dCLkCDrXWUVu01md11pUdKRuBy\n0pXfKOiN5/e7EVmbM3/G9ixVLCGPFc5N72KRLkmaoRffi1JkAfm1Vk+nU1nT\nR12RAo4OaQ4hbK5PJuoi7+JIqw0rGUFNpujlxCU2EMfB+6kF29F3qL3yAdIg\nNzsyxSAzlyttpE08u4PPOSDyZYNa+7wok+msv6JqNkMVkn+6S4t+brvaWnhq\nmKfkrlVaFrOU9zsblFjuOiMPdPkYIzetGvelkR6hmCyHHb1nIE/8r+LuAgZF\nwafAZDVKgJn5sEMk3x7Qchn+aMZCr/mIXFpBpRh7bO0ANoWqvM2HxiJwna0Z\n4A6b\r\n=nSXF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDCAnMeDOmqlG86JK24x9gD8XwPEbeld/8VaHd+i6Du0QIgDMGKUlIs/xX6E0D3ixye8Fo0bpX7ecP04oihzasucS0="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190413_1555113897282_0.34621071132154424"},"_hasShrinkwrap":false},"1.6.8-dev.20190414":{"name":"cherow","version":"1.6.8-dev.20190414","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"739bd23f968be8d9e509ef270f81b51c336ee836","_id":"cherow@1.6.8-dev.20190414","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-qf6B8RlUnmBHErI2C6683CTgk0k5alK92P3JRmSd1AFQFwZyt5CO3O7+3Cbz0nV9Oe7vhyfeWze/rqEadFZvpg==","shasum":"650c2572ad2d600612f7c20e037bea47787e6b61","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190414.tgz","fileCount":84,"unpackedSize":2163398,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcsnoOCRA9TVsSAnZWagAAMfwP/0CY2iDJ+dlIhhfOfJzw\nRoIndcTkiOvKDFVBLOAkQ7+Odf4ZAG8LaN6y8rcLo4VGwnEXU+DdlgVKeMG8\nNKyapDOQilf1eab0rDFW2D+LGvLkGBT+ny5ppnZIlDwMGDICzvM/2LdgkA7d\n1hKbp0UMWCh84jmuiRxRp5Y9m3EG9NMCMhQaZ5FNWUdcL5+cLp/nanDp8jsu\n18t4wO3v5/qlptyOcTiBA48PToGYovICQjDMr2GnOBLF4Ea38oLHMHGBBnWi\n6uVQuMlIpgEuotHMfJe7vT3JInLGWvg4SF5MMiKcm6S68SmHrg1wAz4Z2Pjg\nwnfW1a7Za0uRf7xSwZY8fXVcjMNOxfRmHLa9eu6M9kvZlGsG3oAR5GRDXBUR\nnE4TIFgDDsbR1Tax/o6/hq9KQ3NRMWNgYgMToA09m1EBiaiXtkZUpLH+mlzD\nrH8a29kssglIITqe6DcXX8vLPcb2HnA9KMnNi+ZEq5JmhyL89g0/J1wUhtmK\nvbaSY0p5s3f5bPQnKfiJHcF5eRe0u93DcZ/BGXLenFMgOtBbwBpcVyFLfgrE\nX8cywqvVE45L6es+hWN0lxgR1rszQ9GGFunNsk2vJDzuhYJ6dxqLhI8agfoB\n9fofVhHl7dXz5invsvarkHyo4V4nbN3AVgTLQZ1Mu0RQpwhAutVq6VpTELZ+\nS1Ey\r\n=Pi3V\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD8rQgn/LXLbDAk/BXRdbxY/I2j6WzqYrWQXzXujkitYgIhAKRrpUExgfHITspYchW1R4tFXKyZsh2hACUIr1scf/hA"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190414_1555200524930_0.572091344874843"},"_hasShrinkwrap":false},"1.6.8-dev.20190415":{"name":"cherow","version":"1.6.8-dev.20190415","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"798d3e7b0e2eb4617fbb5a5ba9efd99653cfed4d","_id":"cherow@1.6.8-dev.20190415","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-tYmYOqzNVA87mBPaPjhs4gClzGc6FM40/iwTegkdBTWrttnxN31joBMxJb58SMLi8Jdi4HTsWH51/bBJ7PuZBA==","shasum":"830b8ef13804daa67e45e5f8accf9b3367343b74","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190415.tgz","fileCount":84,"unpackedSize":2163398,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcs8qlCRA9TVsSAnZWagAAf5MP/AnV87d6zSXhccnKHMRe\nzJ6Czv/n1jLV/IrY1PH3jrm7pzJd9vkcC02DOlascyawLGBztn7nP9lCfsoe\nFMrv7QbLU4v7thLWe9n67yo9WNn1wkPGcm+6QnCOIwZNo76AeOulNYyrjOlH\nJgHLAU5QRJttUKEw8de5phziCUdkRnnbxY0gbCkgUBdMOgE/Nij6wlJ+WOI4\nxjf6smQgiNf1+drTvpekhIUALQB5il3FQf3n1b14WWJPcTEDDoUDTy5uwJf9\nTJzqgCs1OhOzSM/al102q9i4Vonf1hm57Eu4TzTmkOVgzb53ySgtu2PMqcBP\npS5eHBdgjdxmnwOWC+FHtzbN89DZg4a6pOSmEnbG9JfCwWpC/VWGmfB9MU00\nv1G7MWBh86U79XBudzRseoMQoFKnu0+XNtf7icejzhk9KG7nbdAptZfXa6Nt\n8jp/rs/SA3lqoBrZ+l4n8aI8ZRwt7FVOERpIHvQzw4yZVSpSZUSLPgBv95W5\nTbOT3RksXLa9TVqoLL3VqbcQxM0XgGASvlU/cFgx9rH/DgeE4/19U/YmON8f\nrqUAlEkKKzf9n2DtMKt5tRWjaJIsle8//ntV/YwFKjdrUsId36Z/prZjEYJc\nlilzCl5RoIZS/k4abYtTn9V1nO8zAIHfFlmGyu6Gvvi2Kv0r61QJ2HAqWi7x\nZVwf\r\n=WjWX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCl6kVDOqExPIQkL2LZqgNni028ayxQbPFvJazAAevaEAIgGtXOt0ZKhFJdEYXp2CvfB+YcxXLipbBbENqHup8hDi0="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190415_1555286692828_0.4740983227143105"},"_hasShrinkwrap":false},"1.6.8-dev.20190416":{"name":"cherow","version":"1.6.8-dev.20190416","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"5f9addc2d7622b42f9eb07985797eaae185a4622","_id":"cherow@1.6.8-dev.20190416","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-K81vXjto1GqdgbL6IrBeriQImQFat/gOST3KEBK/npULb66y7kVMSEr51lnExCtYx1znPEl9m/tU4iH50yYI9A==","shasum":"d28ff0ca8ce962ac3677af3d8c7a18cda177831b","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190416.tgz","fileCount":84,"unpackedSize":2162634,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJctRwrCRA9TVsSAnZWagAA2VgQAJ7gBQyNyqWX9alrIqwS\nnkUzCCGYJRrOoTdmITlSz8OUSobOf3IewZolnZV+iPuBJYbDIFkmjZcAL1KP\n7IfWp9dTTvg72v8yJAwrhxYTpbrTPsBktCFgdh5+hlqqVKWKkHhwHx280Hbu\nwQNMGJXajJwUZFDuvth2aftigp/tu6SpKtph60sFq4oYQip18XeDdr2aEpo9\npITxqO5VzxxZT5luxugoJmNqs8jLXb5gAVeMdgTitycW9Yr36j9BA82d+JQN\nbNQIBzBJN3P6KUf4jhGOVSor1bJahw/IW9D3e+/9LBRlJ/4gZ3+lmProInAf\npeNaHsz/C4wNM19BzEyLjj59+P7AblpLDRHTm4qFc7JStEyYdWYwOObQFqSc\nR6Fug/XbceZRAJ1Xn6eLSJK0+7zbyv9586V2ql+xVYAkADF93Hnav3rw9e5u\nYxcKm3x2Wy68wK8NPECMsELuGFyzi5ovhpatSG1bCwOvWybm0OjHHP0oh6ru\nhkubjCLOKmW8UuwqVYLwMxZmOyFD4cxCQz6Yl8mx8o6rIIEfoXVIW2+Zh99c\nHOEI9mq+D1Xz05XfsNM1oigmXr+O0kHhnpOQLhWJSdnzaZ9M7+ssAazfm1xJ\ndHFB7a10h8LZIJ3EiVaRfBDsX8cIEEeg6UsUdOmT55ai6QwJwWFv+Aob+Uu0\nByYZ\r\n=ocaE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC8bwJgAWa6XjGrHD+Yvt7rMSJOXUP4no/KcMQweIajCgIgDjL83368FyFXOk7cROU4i5dzpPVDG4GWHPyo9yYtpOo="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190416_1555373098419_0.13561445455419352"},"_hasShrinkwrap":false},"1.6.8-dev.20190417":{"name":"cherow","version":"1.6.8-dev.20190417","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"e3b9270dc487c6ceb9c935d76f988fa5a120057b","_id":"cherow@1.6.8-dev.20190417","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-uH8sqKUdWsM5CCJFgbCDUXDkZeYFTrQlnG91LqGidnAt7YQaAsSkhGk0j0uYhKA5YkitNG+INsh63nPZQNw1+Q==","shasum":"814fce89bb773f84b768c26159b36c261dde369f","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190417.tgz","fileCount":84,"unpackedSize":2162634,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJctm2oCRA9TVsSAnZWagAAlT4QAIMTn0HnWJu1f3rey4+r\nPfNK/Ed10GbCMIY+SGDqAk82x9XBm8PBJfch/VFqJatZW/Q1fcH2cyHoMByM\nPNaKw64BdzYpsXG8TFKUstLN2Cb2Kd4IW6+/kIoSlfYbLtx4rKpc/LHfcGVA\ngmVhGbfFMt3wQ8KGd41sYMWPpi6fCkrdBAtr5Hzyz7iCP9+O6PQmuUJkuf2v\nd/tkDMBaAHbWX8XBHly+PSYAfLLdtXnCUTj+YcAMcwIGsKtCyPpEuvhz2OTH\nFjqTWz+usW5bHKSzJjIr6UE8k8vz4npr6ulIdwjnEdlFVZenpfy43ZiPY7Z7\ne2LbHqN11REUK0V+X/YB9k6Q7146ecWglvggkpY/ubFYWlYZd/tJBDJck4sF\nbh2JaabuDcjuBNIVTg5k5HZTKWmcx4OubaxhJfqX5jDhwUogz9NxlGRkR0EX\nHRj/YKsoBTGkhJeebA5Do69czrasgFjs1xMETvNoSxfmVrERIpmGoP3Tqc2x\nHWtUK9MRc9/IBJ9qc2jVge3BrD9uDqbxtAVG0NJeSnoP+QWmXs8Px6nRLWBX\n/LGrGLZgoybDhxoOzWWb0UwHhJZLRKGAiNC4AKeWMi+9v/jL0WjhYcnJJ0m+\n0ManSTHcqIcu6c10jNgNoQpwSznyhAWVfKt3oC46GSXOfXC/4kxuz423ZY1K\npujS\r\n=NxIE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIARZV5LP9K/rhrHjdue4XeI3jicA3YATr5fQVsKzITGCAiEAuXUB6Qu/9UEHr0wPEcjhrdEiXAu9YmJt/9lwtKzIiaM="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190417_1555459494943_0.32573620419614735"},"_hasShrinkwrap":false},"1.6.8-dev.20190418":{"name":"cherow","version":"1.6.8-dev.20190418","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"e869f5a24dffc42c7242ea2158d9bcef3a71216e","_id":"cherow@1.6.8-dev.20190418","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-8yeywVi40ZIZmeoLYXzBPEb9wSqZATRHsi8On/6nHLj3/GwK5+CDdHrgQ9lqApPrd/m7FtEuuTYML+l53SmHeA==","shasum":"478825ff87eec4c161dad1a659281b32cbb028e9","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190418.tgz","fileCount":84,"unpackedSize":2162634,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJct78ACRA9TVsSAnZWagAAUmIP/1mFgEwf0gNf/QPs9YmM\n7fGgdtAZhIgzmDjJTgTuy97J8VE4Fx05PRkaN5+1oaLfw06PDE1APtP1hOIO\n6kd6u+UC9ZLPP948/1kAhYox1Amm0W6S9Ykt40xKs/Vo5eKRALoYhiHixbAK\n67Gx2mB3eTATBAmcP4qRPs/1LQ4lv6v73dWgYEc3jkUTOSDfeRKz8vvAKVgn\nepVozxY2NiwXDR+7LVpmNf4bN0BvVRG/3SGBVmwqDHFyVOhL1bcUYAFxhwVr\n7VxvTsCMs/5hnO88lMHZvv3OO1leyrv770eSGtXY2Q4Hq1kwOsCCr/uj69F+\na3DxzghZBMtNPUz8FBobk2bsY99Cf/OifyXcIU2WtN1Zu1KKFMm8nKEggg7h\netjpVH2qsR67nLFkt/d9JORxK0INgL+kR8j4F9+Dhpqp5O67OVCXLwwc6lGR\n2wJxTMo+4LebI8IxUEgkOtWW7xeS+asML3mUE8DdymLp15ZEvGlByoiBPsTc\n0OuRrcqpRzOwi/KopkXsYuphDIEarI6h8bYh2qiDA8ML6bPoePfl4SE1zt6t\nY7/h6XsrEj1Z4kYcpa1cNUvc2AmNu3lLYsKg2AahjEUQ5xuHoH0rh0MWDX4q\nshsIRORgCnCTAB4erXTzRrk5DJI/u68nIGr4sziK0rE7MNehlQRg1ZLHFXpW\n4lW5\r\n=RBXp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC/oXEVk4y1O/cIxQ/tdf67y3fh5svcqrytJZfjMxKlCAIhALA+6fGGYgSQ9wdT52w0TLHQiMgFa9VRLTunELkNGqDz"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190418_1555545855756_0.5738439732074552"},"_hasShrinkwrap":false},"1.6.8-dev.20190419":{"name":"cherow","version":"1.6.8-dev.20190419","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"33b2fa95f4e0774303d4bae280e273130192a8aa","_id":"cherow@1.6.8-dev.20190419","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-KV6+gesYWaHwEWA53DsaOxt3en6c4n+OiU1QQY9Hwt1XyveNEI301xZTbfXBXYoy5JXmYWMi3DdonYSc8G6dag==","shasum":"ccbc7e696f4c1dd7bc09017b3b00bee968ad0f27","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190419.tgz","fileCount":84,"unpackedSize":2162634,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcuRC9CRA9TVsSAnZWagAAEYoP/jbEr3RjRPswFytI7r8z\nFKHqAEFBqteAjROGzXp6zaG1KgM26jLmB5DdNj+VhSt5bJbebRQeSlTIz8MS\nEWhwYZc/80tE+WyYF8mUax+fIf9Blc77yu5hLTsEJiBMsVE2NDqOXy55NFBS\nN7aM4jQ2EKT3+9tjcwycvq2FXhwq/lX1pgV6pWvg6FWYi4Km4xppJ7UITumP\nX5oMATbEoifMMcb6CJW1+LbdQeUZkpnDxQGUfPLrtyrNSo4oSoMXCA2cDb9n\nR+XBPpjnJvbb8VL8wzcyiqQZPTuM8K/oKANqCd+5+CunTlgg9Jj41++yMhZU\ndZ2jzPP+fibgMJPgRHgEwooocPNaoPdzfnRFl6leDT6ucpxcpCG129XkC0m0\nuyasI+0lTBNJLYd039+ypP5XOC2fbusQVuk5bpqceNsa0ugUk3PGz1EjssId\niZHy9ZsB1m/ASY2WbaqnAyU3l1GUKzY7S9WJwRGJnrYU7ezjrlB27CF7SGDw\nThr13SJKgONygCp8cZd71YTgw+L8aMs1qlTmFiMBdoVt0f2SH5XfT53xFP8X\nclabJMIYtAfmzyGjR7Nlt/k4tsuHdCBQuLgZs/k5G5cuYFVPcUfNnqnRFiOj\n84h102eQplCHDi06eIlyWCT9g8lZkYFWkNQxyrVSdOHN7SEscIJZDGyJKsvA\nmDao\r\n=Xjui\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCiJuHGDB2LiSXFojcyRgvrLe2qdEZqSbA87QDYFObXxQIgWJAn4Uf9p5CquuJKzG5jo/d+sTDg95t+wMIfDemdlCk="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190419_1555632316876_0.7821930801098709"},"_hasShrinkwrap":false},"1.6.8-dev.20190420":{"name":"cherow","version":"1.6.8-dev.20190420","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"b9a5504f38859cf9f7c6ddd3a579d411baae783b","_id":"cherow@1.6.8-dev.20190420","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-nC7xEVPrHx5no/MrZDopL3mFdPer17xJb4fspZk1YhRlA+IY92oS1TShMfNPkpHuSSZ32SkOWPsNFQSaY+Xmjw==","shasum":"8d4eae685e2c96dab81905a2df510dc5c0b879ab","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190420.tgz","fileCount":84,"unpackedSize":2162634,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcumIGCRA9TVsSAnZWagAAuhQP/2AmFv+I75s6YaGe1rKc\nsdEE6WwlVrCIJy6fDGuN8+hw1py0GJAG+1VBwpPcs+oCj4X6SaU6IWij0Lms\nxeMnmjK1G9wAMWTP84GbxZCUnQ8IEPbdrOwSk96DBb5oqXh0kIkVbqBpoJfP\ni6f86pB10yGxY0LXd7I36t/Ie3IDfQUPXGWeoPltLT/XNhww7zK2Qh19G8yK\nOpGS/YyoCHUMGOjB819TSnduRi5kpoQ+CEbjfAv4b6goQNj0oYGc5KsjIsOa\nlCglprw7qJJvpa9vHBw9w75zcQVUkCdjY5mlcDJv8E/nvJ6IAA4Xm1fBS+ni\nARqEygWyJpcSJcZ5z1x4xXjA//uwTwF2GzS3CRqsR8H7QG42Cao1xh+5SgE6\n4HEegIW2wNLTqtFWGDex6+Fy5r1Rr21WdexL4nxMooUXgXJ8AXeOSssH3U3R\nJyGBcfz2J9DoAwoKabV0kwYAEwuPJWLmbQNW7Ef2EV0/U1+AHCb/QLOmE921\nBttoxoJqnmPrHLV1JXGYV4Euv0pyPOHpg0a+5/C0xdCvgByOApEyj/TvBdFg\nt8qL1m1JRzefuHYbsqo9um+L+VgRMRSvnEB5/CYOrs7A0DcBzjC5takoQXlO\nd1eZylLxUqThBM8VU+cPqYTve6Wr/thTeknU3XwCt5mNwSLK1cffh5KIP8Za\nnxQE\r\n=MHHO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEocO+xD4qd9zQXe+vw5pHDdtZu+xhsae7V+wArj9fJ2AiBuT8OL57+qnp9DYslDU62c++wuOPX6oKjEOR3t2c/sfw=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190420_1555718661803_0.016214665773128134"},"_hasShrinkwrap":false},"1.6.8-dev.20190421":{"name":"cherow","version":"1.6.8-dev.20190421","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"2e073094fd40f5ee6c775f95ad4a82c659389c67","_id":"cherow@1.6.8-dev.20190421","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-krspKl60PKyGK58mNNzTZJTuVtKscthd32VG5DSwOlf8MPxsTPCO52R/ML1Hyx584KvtA/gkzJWEpiRAh92wjQ==","shasum":"e4df5174efade70deb9824b571735ae3d204e2d6","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190421.tgz","fileCount":84,"unpackedSize":2162634,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcu7OZCRA9TVsSAnZWagAAsH0P/0qj86o2SdxRkTJJtB2A\nHRGug/514nbRFr/dqy1AR2TFg/PXqg/1WEDfb5t0AXe2eiByujBcs3EKRZ6Z\nEbXujoccL3lg7pQX+T9JUJfutKmWnPep/YnudgfMl9PghxAEkId4Yww124s7\nSiNh0Q5O5S3CVWtBImwfYDH5BaKwfbOaU1u196kRKv/PFj4MaIvNk+qdEYS9\nLgINXyUT2s5DIC9a3gSiXIJMHYjXt1OxM42OgCd/c7Jh1IRqZOOFSwiwUIeR\nOsi3hVDxu5t3WcAV9G4GxKIt/fKeQkqMUKV7HEFvVvVAkyfljA0ehGTxDuA6\nF7J4gmCIeyh8COpYIpiivKUYNR3MrtzQcH4lkr+Hf1VGdw3keflhgs+q8+vZ\nyiEk/fj3x9t4qGyirEY/9xfbFLdIQbdG9i+wayGH5l0KfBleL8ELoxx3/7Ou\nlPj8XzX5PDbBaxy65VXdYQBx4H1Hq+mi5Zqt+Z4RgprdOo7nFwiUnHlo3T40\nRcoiC7AgyXRiZWaibbq/gElon88LE+UVho0coQDcvxus6JBUjvT+/P/8dvI/\nOd7VCOxXVEWBTqtJQYeNZMtsZXtDRMHDCFZfKseTKpO5yow+S3eSbHhvX/4h\nrQosYjAOXlwBcpxPhlS1RH4Uo8vcB9xphKQVX+zk/v4S1ActASd+lpYzYr/O\nbSs9\r\n=6bFe\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDUtskeC6+Ge+F7nvgsB/9UpGC0BVm/s+wLQZIT9dve+gIhAMjt5pGOxKZNbskM1gXe0Pg+5ieam4oiPH3axFicGIW/"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190421_1555805080411_0.28434551486831405"},"_hasShrinkwrap":false},"1.6.8-dev.20190422":{"name":"cherow","version":"1.6.8-dev.20190422","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"73a1d06b909ae6487d9906666129a170fe1d3c2a","_id":"cherow@1.6.8-dev.20190422","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-kHsYn+Lsx6/FuN/RoC1uuHiTg/PjiefpvYqikYpLRzhQm0kyRNKUMurODoLfByzA2GJLFkDqvYZLoyclwupUMA==","shasum":"afe7f61440579075403906873fc50210f77718b6","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190422.tgz","fileCount":84,"unpackedSize":2162634,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcvQWdCRA9TVsSAnZWagAADzYP/2EWdBot4blYABNj5e5G\n4+7FkDKHYj0dnrh5qC3bEnzgFAKVf2FR9zDWzBZMwnpvb+sO/NIFqsKbUkjk\n/Vg6F1utUTxWZxNFus6a+CCDIsIKyor9HrsblPCcgnwRNYhwHDKUMasSIqBL\njkh+thBrYXRdjsdRuHGFGWpN4sHIAd3mCWbYV1HJPjfUQYYxXGNRV3B/dEMs\ndjDochMzsc9d84qTFzPgMCK680ZxUJ/Uj6dvohLtvMZLoEksygjT3Ezwt4sI\ngMCUVGU4nZfUJWyS2VWEsfh5DirnwwOGY2PLWSrOLWEprheSFMG8UO7I0JH9\nQbt63GyiiwX16Ij92FukSOy6gsY8di+vjWIs6JmcwycOS0dSCWU+LohYElT8\nc7z5Kw6KXzrkLdKLVJ/IZAzTJ8kysbrs3rW81DZZyP7nenL36YDe6uAGsS+J\nD7Rwm2HE3EClZTPXEzDOPZDAIr6wkUfuRYdAgXsLSWnvu0WQ8o9iHxmvxdag\nwM+Dd9UI5UN07NfVx0p6S1a6JngqA7bpDVB5CxkYQIgiEEtKax1iP4fNSmf4\nDi34lRN4zgY/hERTrNeDYwngR7x7y5mfO21GwJep+qGWeMsPrNJCqJ5LP0b5\nehDogcq3SGfP0iWRj7kcvkLQ3FtYVMTfbMAugjmCBXb0MWfR38mz3BGMGwEH\nO3aP\r\n=RZ6r\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCEso8fdXaZyKSKqQm26/qOv6zxdFFUC1KUQCJ0BStjNQIhANijBkeBD2+aGZn+ZklHH3o95hfjyAoicUljm+WWZky5"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190422_1555891612775_0.8768879592283032"},"_hasShrinkwrap":false},"1.6.8-dev.20190423":{"name":"cherow","version":"1.6.8-dev.20190423","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"5c4aaf73407ec6137875258f131c82173f8307e2","_id":"cherow@1.6.8-dev.20190423","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-imd70hx81+K0+IST7o6LWdc7f4iJR+flaszqDTGYnb6RttUyfXjvrRgvBPxaCxMOjcxbgwBepvrRSefdj9YWdg==","shasum":"a10c537417275859a50564f400f97a967a02b6d7","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190423.tgz","fileCount":84,"unpackedSize":2162634,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcvlb1CRA9TVsSAnZWagAAMSQP/RONhoJMqwkgqwsNzIzL\nYBawWWYEXSgJwfenriqCVGMeyxCt9GYJZPZrGBX35H9xh5PqFzXFSJud0gDP\nGlOeCMB1W0/MKtlVNF7vGVNC7PifLR0gw83/762eKeULrZ8LDg1soJMI/smi\nkCXMCGvZbl8x7ed/uRXpnoWHvvz2CWGr1m+5D8Sz8/IGtcZV7qIsIFATHMHv\n0jyWpO8r8pYrxNx9/PYAG3XAXMHe61gt1E7C3JuWQ7GTJWb1I+1YbZJi7pYF\nyzNX0ZittHcYY2lMiOB24ddeK6QiewQcjSVotzhGkE56rATaEwmLBrpZ7OxW\n91YwtdYjCgDrRAiW3CEb37d4JChq1rpd9lhElPPI96pFf7zMecQhyxru4mm5\nlaCaWMEygY84gpPoPJIkCQ4rjGyw1x2pau0fD4a8xD5BpUTMtqMlLKSHAELr\ntSRVs73Ln5LZwJ9Vd3ZZM8qZlg0WNAJeQg1y9e4niKFxnI32HdQOWtE9gBln\nF0aoCJwhp3yziFe1SjeGyJAjfNZ9ImD10R8H2n9nDHiUuynqS0nHg2RQ8nOA\nVVljlfdQHcZz+Kgzm1GMv7Qs+dKjeabAMS5OKzbwLftogC91va0m2Ts6YpUo\nAuIxTteM/KlGFfgYwRCZpJx+M4JKJw+6oxjGev1h6ne0PS9nb0sMX+zOmiaY\nVJYf\r\n=ERK3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCNYHoAcrbST0yqH3SvDQZoLNklFE5kP0/kpgfGKFrNiQIhALsVj+fZI+E0rTAoiLTQHl7L7xeSISfS0QBfDSsbqkza"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190423_1555977972592_0.19014788924963422"},"_hasShrinkwrap":false},"1.6.8-dev.20190424":{"name":"cherow","version":"1.6.8-dev.20190424","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"e04dd21328a22d3dd6fadff2ff1e66155772b451","_id":"cherow@1.6.8-dev.20190424","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-1YIVpN3fyxaDiK5fMtEUXGIBtnQaXCYGFdx60H9hYDRmGQwZYeNbSO7/3kTducYWk5To69M/ZOKI081sQxudqA==","shasum":"c717c7ff07a8b3e87a09e9ce521f4f8e0cb359e5","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190424.tgz","fileCount":84,"unpackedSize":2162634,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcv6f2CRA9TVsSAnZWagAAEqEP/3BBhegxY/uBpmp1APSn\nvcmLzfpjMpNh81D6LKL4jf8YULmlGTuS9e6MFBZfRp1lh8z5iF1S6fpOan7P\nLPSb3v7uQdF8zJKR7TkYRpm6c4dGxjKKddlyVJo4CloJkzLCdcXfByz0CU7T\ncyvXuOcv90cfAL45CxWPayYPt0GKU/+8PSuGQ05rGpZAkSXfWp3Z+CjFnegR\n167WRe+Y7blRF8aqgOHuwDqX5gwqPfz90t+mJOVoHLeitYvKFRPmKsYUFA2A\nfFrx7KnCnSldMYvE8wf8hQsM/ZUX6LXrX0HtDk1Upo8kcxMEJDB6z0kf4Thy\nsJRKWTIhlLLWgOdKhUd4bUpiL2vbYIv1Bie56JOECRoXMGgKyt5QfJ1Ld0CW\nQtO/H5l+0cjlSP4AePX73Q3eVQHK23y6A13FXkELHySf2AM1UrBE2byRXC0T\n4Y011sFf2+LHQFXlPVKZVhdcfPzzbHvwGNIcN5hgmvrqiuqdKYep6UtqcvVI\nJvYLhb3vJAg2mhbRyRRzl+l2BUyuC8MsiO8pRiSavTXAU11doYX+2G264kNs\nsmwywkhOTEjcVyT7QkqHlHjz7gENzdZsPUG99SX3c2pXQXC0AHmnFthlSGlp\nfO+UwFFP4mKG8j3Y58BlrC++RWE/UUnUe43TxE4yPAQ8L+mjkpcfVOJulPXB\nQB9F\r\n=OFPj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCJ4lx/fHTTGZTomiIYLRODDkgRnZaFwMMMqPIu8cmzswIgNsWdUfoiKPZh9U/Im05PFXjb3mdpLMJNL0FrwWK83B4="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190424_1556064245033_0.4861273686025933"},"_hasShrinkwrap":false},"1.6.8-dev.20190425":{"name":"cherow","version":"1.6.8-dev.20190425","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"3ede9c10199d30fcda8689f81c67e3569b5ad94b","_id":"cherow@1.6.8-dev.20190425","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-PJpFoED0oLqWaKIY6FsNDU1gz+GpShje7IiMGs899cGlstVhV3614LI2jK0ohxf/k6Yk+Go+qL4NHrNAM7AqRQ==","shasum":"c719c4b2adbd1c769fbbec7de890fa72fa1316d0","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190425.tgz","fileCount":84,"unpackedSize":2162634,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcwPmBCRA9TVsSAnZWagAAPj0P/2yX9HsnaDbmTzSmwvFC\nKqZBfL6VbMIlq2ORTfa5IM62eCxFWD7TKmCuG+Epro1c6P0Mhwk3yN5oB5nB\nHSyh340Z3uLF8TjbeK/Kgp2uimaoJPVdv1yqM+GB+/7kj4BYMFZyZ9J5eq4i\nBY/2uuC+04vXFL/kHsavagTzK+GRowWd1QsoWuGxr50Pd+rQIC7/7WBVoLwt\nqeEWHBw6c3YMz6w+fKHz2OmcqzzKDV1+gW3XM9N/kXKBuCj7slQD73nZC/VP\nGFQ7QsUMDfEFsqcFLr82M4A19NmoPG5ifJ+6t8K348vfW9eOrPCjUwEXwrcy\nqnqIePdYYWM/o3gHOajBbxzzfJgmUlMPBrZWzz7TORI3v3EGcCAscRyiplgo\nTUhdxnLWAC14zyyaJWWfz76Kqm32aQAIWQrBay/7FlN0EKGacY2XBQe04Wnf\n24nCGICgAtTo5TIzwg2qN6Q/DUegPJib341vNMe/geVCY1bo03CMlnrn84sV\nySWLDzqHo0Lb4nhZg2xsU+Qc+0yKMhos7PaBmu/nqvaD5exT5OHOd/F1ZkHh\n6wxVMFYj4HNQnvKI3kYGV40fwHEsornzkMQYonMw+tXDIFA+GtqIscPoFVTe\nkn3R1Mllo1w+bKPfuyFFS9m1Aj8q9X6Pbhc/eJzue3nOsrCEspmKBUANYjnm\nLEYf\r\n=JQOm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICuQzFkHrjZ4JVEEBF9EXwi72pNCLa+yqPS/b/E8f9bqAiAjDCqMCE6YowA+3ekl0B266+KOlWTljl/Ce6DoGQZJrQ=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190425_1556150656445_0.9312900316145638"},"_hasShrinkwrap":false},"1.6.8-dev.20190426":{"name":"cherow","version":"1.6.8-dev.20190426","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"a931e2c7314ed3a2370d44dc485baa89222b8d11","_id":"cherow@1.6.8-dev.20190426","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-GL8qp/+K/CHpG2hP152noZDURU2fiT9NHgRsHlOFgvbozV0BATJ7OhTpuMUNzK+nDwdrtuuXTM+KRAPfFjfvFA==","shasum":"ed13288e402e658019126a7cf2d13b7c0b515d5a","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190426.tgz","fileCount":84,"unpackedSize":2162634,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcwksmCRA9TVsSAnZWagAApKQP/3+U9ntrMP7DorgiecDd\n/v/GzIpHquvcSR3GXJNf+ylIMh6iZfiBCHxfSaClzV/AECoTuRens/gwfxfb\n2V9zG4lDUKn1dyQStXs3fp2N0rAFxwhGPUsLaBSCycgbbUiTDs3EhdatdLxC\nRhXoeKR6lIX5Eb2bfa12FfSvN3uOeVLjQDABAhb76vVsMnxJLNXwIqS0Uat3\n1apkuxNU2Kgtv4nCSq+ZLC0toEZBevQPUGl1Ul7nnIUvlGVVKnzt3u/pNx4c\nifKz07MKCpYkVAPQKs18/xYRadzd5uUR82DEmx5nAvB4OEuVJc2TSOMFzzKc\nR3wN7XsG/Tn+3lZa1XpygToDy9A1Heh7OozadC6r3FyFrG0QoI0uRdgeegpw\neWbhmx4yb8Jhqe+9u8R3V7gEe32IVAHb+ngnaLE/XH1qumRs4ZP5/DXP+9cm\nPDZERGqRWXqnTMLbNYvEzZn5O4+fwxJAdb8nv7PqDduj1GDUsmXVdyl0lub0\nImSIaXmVl1d56Zkc/WuKZSL6Tz/kBhpP4eV5WIEe5L2RropsGcMh32mZiI+e\nw1eOWyFmC3l8HgLy3IqH0Pnh4+3vNFzPcpds+d124SbVlxwmm/9UV5PCIME3\nKGNu8+HBGH7IyNxm6gmy82NP9+RenchP2FS/oc/7DOSyGiBNHDd3n7cObspD\ntXbY\r\n=wxy+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIERLqFlb8/NlioxfGFB9JwOgTfrNNUg0+huEwQ5OiH+bAiEA1diqdinz6dODfPgQKcu+XMiIJLv1kBHiSNfHY6tL/Bk="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190426_1556237093569_0.16665659512504716"},"_hasShrinkwrap":false},"1.6.8-dev.20190427":{"name":"cherow","version":"1.6.8-dev.20190427","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"8f4da85a7ebef296c787ee6f422f918ed3ed0f12","_id":"cherow@1.6.8-dev.20190427","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-Kt1ozBszTiBCv601wvWF27hsg9JvJsilAfwxceqNSnWwmQnInr4DjMRQ80riLLsfclrAzUx3hD5XhphmxL/3Ag==","shasum":"99a32c9ef28915952b596d67605fe29cbe421307","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190427.tgz","fileCount":84,"unpackedSize":2162634,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcw5xmCRA9TVsSAnZWagAARwUP/1GXLOq/URvBsgcz5ZRP\ncumZhEHW5gFRO6lreeTbcL/e4uezP4fuBTCypAkPTPjTP/4kWkSxlkVOu5RT\nQdc2ONjk9uVA/g/rcGxd0jdieJa1LZWH+aw7T8qALy6ggr62ArPYmvPapGcf\nAbMqZa1XLKzFOCr4aaoNDGCVILWfe2/fz2oZaqbRwKBc1d4SrC+lx92BXlTv\nT19zaj6PGDgHxzpw5ZsN3gVLffG8gcDwQRBWzifzs4pgu0t5d3Yupk7vZIPO\nMqPKhULK9MQxmNzouQ7BoDAcogWhCUQ66qtrhq3y/7OtDEVigDovfeL1sgxc\nFt/ekzUcBQRg/GGdTnwbUZtLOSnSDWMEIh1Tr2S0j3HLd28nmpZP36irGP0T\nNhGN8sNpn/GGpYMkMvUb7MfIsRLk5gLJxe6xWUlBuXyr3rRoqfWA+lx8ywOC\nQozrATmrKBu3WmvQVwiEUKnlAB/pkFjCEPRDMwMrDCW8FbUzqWlpVuIa0lAI\nBU+uOiF2a36XEWvLrru0W78WoZf3XjnosI5NPUldP11+0bqNhrKupBZDGVOR\nPCcscf268mLrjubVd/jBE7CWSnFyMaIPvFQwlrHRaNCEP5X2V6+IEN9yDJpr\nKsBV11tBU6vxLSt4oKlfnTnImMtKKrB+ZwbOv/YVY24rrIjxGRm1LJiut0Ob\nnZY6\r\n=WCIE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBcKb2b9M6xZJ7OjeJsGtJ76HD26TExYS32ocJFGR2HKAiA+MQmL33XnHwbWVaj5saUdwOZgqgQKSYob3G4wzYLdcg=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190427_1556323429924_0.004109202591407124"},"_hasShrinkwrap":false},"1.6.8-dev.20190428":{"name":"cherow","version":"1.6.8-dev.20190428","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"d64af18d93e1f49dddbca1fcb75c3e362baff10a","_id":"cherow@1.6.8-dev.20190428","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-XO1u4rYoibiRbjPbki0V4+7HgyPwJRFifkER62tblr2rNd1U/J8L7NQX7J8yZ3Fz1jmBYPdvvsShIfQrnd/fpQ==","shasum":"fbf489692c5967c72279ba48c7c6b9ec85ba84c3","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190428.tgz","fileCount":84,"unpackedSize":2162634,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcxO6iCRA9TVsSAnZWagAAU9AQAJVbX6E/B+ISqpFuB6iN\nJqEnf0NM05NOiZRxqWGyvtutp4Y1045qL8E07Z7dbD0NPamRXh+2pgvZ7pLD\nGSTpQ/RkiRJ9IMXeaWgBzRm8JtYD6rQBA2x3sLHtzg9fm7P5Yo6rC1y1ha2e\n21PrgZsMABCo6iGBrY6bS8FN8BIYYWSew7w4+lfvh5k8PWAc5+jzyYAjrBAC\nGEWqEEgdIXL41H3XzFd9+CCgWajtgBnwirB8pYcs6ZUPWjo+ubFDDYlO3QbG\n8jut7Wm774xe8gm0bMpHcq29wlCSwPoalXvnt7AVYJD3PDCTolVyusT0Gr3f\nw0HaukLXYQhrWrJBj0OcPOJBvckUSLGIxE2uhG5Sb3eyb3r4uVUXhGryJvgJ\n/3RzLRgXMl6XPVt2YdiDjlOfxkV11gkeysE+OdwcSSysBfBB3a5HX0QIP/Yn\nUS69P2tYhJfyZnaAC3U6G71qwgZaa57bsKGHI86Uw2s2L2o1dYGRtljiPWxn\nRwlWIJzqZBfLcaJ9c1Czab23DF2rfNE7Gve9J+9pRoN7QFCQk5wvpfsW9+1V\nePGWhj8yhxGWo+JS9pHeJlJNtXUPGzO2ZmQhD2AEU5HA9nnLf0WmujBzN50s\n+z0s2mj2X3dJoV5VWnOgpypfbFzvvUnYyyY0dk0R7ovnIsCVcs2QPmnjNLlI\nx/+7\r\n=lFqI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCsdeP+Nqpb7vEhnSCB7bxsgnzWy+OknRp/0SnkWCtHrQIhAKV/yHrNf+gPftz9gK/ncf2Kplh2MlL2WprgSN4WxQ6b"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190428_1556410017756_0.7829481432344803"},"_hasShrinkwrap":false},"1.6.8-dev.20190429":{"name":"cherow","version":"1.6.8-dev.20190429","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"3ba0d881d0b4186b9e59374c6b72ccfd71758d25","_id":"cherow@1.6.8-dev.20190429","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-u9r64nW7W/nThf6AozXX0b6RoOoS7Iqixn5ueA5zHlQ+PbtFRZVJblMwVc/y9KoZ/513eu9Cte4IGOIw2lunkQ==","shasum":"a735cd999c6d67f8ec121080c9c6e8a82c9deb63","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190429.tgz","fileCount":84,"unpackedSize":2162634,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcxkAQCRA9TVsSAnZWagAA6VEP/AghZNhVQhLtZqTJHIxK\nikKU6ssflq86nm5mjyhpYtSe4LCc0cQbWCsFghMeZ622N8mv6tzRggR3b/7/\nvvTLrOinO5YNlaWXWHWz62HQRVFwyn99xlcUORI0mk4/FtX/IKpRCcMrjcTX\nfAoE/QX6MpRow45PmAouBs3WbYwleQ9st7FsLVT1Rfl0F6gAx+7wTzJZRhy5\nRj0JvXlR83xKLFUD0AstHdqkeBwN15sJKAoVhr/DBNeJdlTyXYy+yeu+Mpp/\n6YPE67WJcrNna6oHnssCAPdhM/QDIHH3F4jrCdNtOFp63yDe0bF+X6rupdTH\nknEN9DcVeLqEcH28aaCaq0Hcb5U9YGoGPNfDYgkVXrSKkQz3uDgOejbqOR28\nhyhEfgy47OlLncLiVZJLZwyQUfbR057/6BGEvIuZsVGAyRVTim5Lqug/J0Jq\n/HWQUkZ8gpsgcaLtUb5MM5e8+NKLsTsKWIWXAf1JZHH9efvgY/uZCHQLSZfg\nGezYb4mot3+9GikHqaH+SokkUpm2NFROqO4xRTouAS+QkkmfTJI2Ti2MztG5\nhXww92LcOQSjKDsypbpwazx+1X7r75pHZP6KqvgDZgRxbserkn/q/9aviiTq\nGnmMYQddRAFpMIi+9DT7fDHzGIqZKvUyXbm9ANO5QuMEblSt5hyMVyXfNM5b\n6oB9\r\n=krrP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHiMQzaafmQuJyZnEvVLOwzOdqiuY2wxrK/KAhY21hvcAiB2vjrlWcPRV9yFXzcr5RrJ3eaAqWQ2m/lwYArbwpip6Q=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190429_1556496399848_0.9644714925546649"},"_hasShrinkwrap":false},"1.6.8-dev.20190430":{"name":"cherow","version":"1.6.8-dev.20190430","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"ec3ad6ba9de1baa6fbb9a40c3d49082da3abb681","_id":"cherow@1.6.8-dev.20190430","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-rE98hqrJnJzTMn9gW+AJEatyq2ITSRbj7QIs5DlnEEESGENbH5ggcfY3giFxUwcE7AczLKqLJXdC+it+A3JORA==","shasum":"a3278548168c32e3835f805e25c19dbd8fdbc508","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190430.tgz","fileCount":84,"unpackedSize":2162634,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcx5EsCRA9TVsSAnZWagAAAPgP/Rmse6Me2U33yPeFbunF\ndlZGrWX7FXNVJE/D/kratUhfvbCbfYMJw5+PJHrLsBz79n2CXrldthV/vdb1\nKAkSs0PjPIUCTAM8kt2wlR3aUS30DJr/Bv2fvlDMnt6vsrzp0DXdPM3hH98p\nFL1w+q2w8Wv6AU792w/fzyBZU6W+yRbVSaw4iZDNzQL8i2h7FHGl2vkrqiXX\ngBwH0ppyv4HDy7g92iRnaRSbBCBqrVMMAD+iUc2gT1znAuuycPhBRo87AfC7\nr2RjS+mUvS7B+UFEnPF+26qqEQb7CWJd/3KBQ/dgyhg4lg5U2QUMtthrUHeZ\nv6nEZ+O6EGujgJvSerZ0OnPD31ZD5i8hpA0pQaz0APw+5fnj1YIFkVby1K8z\nm4dQWsRDlrnX3E4qo2eWpzr/eLspNAU1XKhxZTuhrqLYUQOrDMwTND2QVo5w\n4d3CL9qfJj8594yzzJxhxdpPl6q1IPm7FRNn7GK4ASB6F5Xf67BfOGO35VGf\nAYxjHiOpZj6uuWRuGbZ+9M+8jHuK42VAx074FL55CZ/zlhtcZ4A4v4FI50VT\npAG1jDLwBsMTExfQYMaqjVQy+jEhZbIjkueZ8krqqsvXEm9BxKmbX7x0kY2+\nGVxrUNbSiYPiuPJMz6Zqff7mg6FYNB5dNkESIvFbJreJuEwjZWkEo1X3amfc\nt/1S\r\n=Vw1s\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFFappUDYFXE3l+wJDtKNDDnofSinBlzqIbS2PJaLXCXAiEAypVvqzcot+wJGTXxHo4HO+vxxEe25vWjVfZUkU+j7fo="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190430_1556582699260_0.00022428359676696097"},"_hasShrinkwrap":false},"1.6.8-dev.20190501":{"name":"cherow","version":"1.6.8-dev.20190501","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"6e477c20310d85ad4a95dff4b2464745d9d3f64e","_id":"cherow@1.6.8-dev.20190501","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-r+5+Hx5zgdim+KtngDIH6lE1bnVk1JTqbEiFhrTdGpiw0ucA28gr51ASa424H+CTEwowM+/UcvY8fqDZckXtMw==","shasum":"ef0ebc33ebd06e97bef131b363b123945c267361","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190501.tgz","fileCount":84,"unpackedSize":2162634,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcyOKyCRA9TVsSAnZWagAA8MMP/RDWv8eTWgE0t+VMJR3O\nIRSuIyY9QDJUQ95MiltIc7zjNmd2lDIC3mCE4c7+1cri0bgFm3Adpf/CgfwC\nfz+hOyIVp/zodIgdNanJnkxBVqRolW13zyvz/+U2jQcIZMhxeuYfoso/+2l6\n4ELaL8LpgDB7+RXLmSOBW8dTL1yATSloTb2Q7WCphGJgm0vIzbstyyBvZlZT\nxNoRZnWKhokerBQ7woImUprtaxAW7HKB1xlbqruvKhm2yn9zTfMJ9J28zF2n\nPQKHCPRFCg+v0Tlm3PfAYsSGILanP67RUxpserItk3ohkfzwzj7s5Ju614oA\nhR1N6n7d+fQl7PXcL0hpE3/sPLgHgJBnmnFBpV/YAqAOAxBjryq1JPTIL0G1\n7Se9yvycVm1IjLqPtzS4eAmYbAT8twhTCwUqaDIl9k36nQsI1av4RApg5WqU\ns3l3gjPbWoK/s6iaV8xca5TYtXe55qltAXpQ07FEoYvoPLtpDWI0aKxCN/gp\ngjnZ5yUHd7YJpCSKqaDxEBJx0n0cftK/E77+9gsiZQOiEZGseD46a4fF7M3I\nnVvt5ly76pdbwmnFg3la6oGbvcua1X7z9iy7gWswL0Yx8AN8HxCqVhi4NAbS\nt8DkM8oxToJnvh/wthgSK5I8KkQu4F7ooGYAA4zAGF+21djA5YUbkOPh4Tm1\n0brC\r\n=gUeZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE4E9UUL8q1m3531HMHDwWX1IjZVQimNDIMeoso3ojp0AiEA6WLNh4FSCJQPS9OCsaRTmiIjzElFkn+4iiem97snkzg="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190501_1556669105347_0.12681837901680315"},"_hasShrinkwrap":false},"1.6.8-dev.20190502":{"name":"cherow","version":"1.6.8-dev.20190502","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"8464302afbf37e092a10be0313325b02e659884b","_id":"cherow@1.6.8-dev.20190502","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-8v3F9z15cGBNYdXEqM7QGSi7gCNUnZPKf7Sfw3Bkz7tGR+2U6l4bl2jgI6NslmZbZZZoL9msuyvDO9P8aw31Aw==","shasum":"130e77220c87ffb7d314091a9ca0c93489952539","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190502.tgz","fileCount":84,"unpackedSize":2162521,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcyjQgCRA9TVsSAnZWagAA12gP/090rhGbBeamdiWScI/y\nBVAFou7wqONGQu+xeEr0Xi5HKJ0OwizAhjmQEx5+0M8Bk8kqQbOt1pIZ8pQ8\ns4SY/YTPtRksoGiUmNO2hqTJNEys5XVcr8eH8+SDw+DoFHOQRLS2yPgMeMQS\nFmH2Lev3osWKmcEB4DKAXshx4U6vR1T2vKJBiUvSU+MSBLqxm0c89xeq/33n\nGT3iReFY1EvyGKbyWxiiXggqH13nPDXoY4ny6O5Gh5bXgYT0l2AENoSjjSpV\nQKkSVHeu5L6VJiLCUSpgwzFXSrqY0n8JMNGdF20R1lLuJx79xWxp1tCPzi++\nRoVlyUrqvlQN9xIV/PY56fJ2dCMiE3vALfZRfRWc5xW2m2jPeYfI07F/e4It\nN+4zJlEolEb+YqV6+sRC64GGn7NsZoX8oxybaL6+6JjdmTc6v5ueJahKfFqH\nxVdytZx+27IiaB37XrBuCLCHQTxgpR3QONaEaznvdmPd/mxkFVhN5c/BQ7R+\nllzdHzdJbuDWrmu5HavYIA/tDa42x+Tzyam4eoayFixGJgSOFin+pn7NSIWw\nComLkxsUMUjkQbtTVuCQP9wlUg8+HF9vsf+0t6Zf+iOHv/fUpj/iJloefFJV\nTJqytVhuICEZTFVAwd1mOU158UoUrH9KAiTG6uWZTS9ViYFvvijK8aBp4cnh\ntxB9\r\n=xZC3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHzONX3+qZI8tgwHN0iwWc+7+2eMBEqRsc6QfGuV1nkaAiBXOOxknVT/fRkjHxwy9IlSORLBUSgj1hdNdCU94IJMZQ=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190502_1556755487141_0.23652224319261106"},"_hasShrinkwrap":false},"1.6.8-dev.20190503":{"name":"cherow","version":"1.6.8-dev.20190503","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"41a3a8db8b8c290f9f6d05a314e087967f67bc24","_id":"cherow@1.6.8-dev.20190503","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-ofjGhXZEh1iYJeHnEHqf1OkluWuJ6VPpAyzkqS3arYI7R2dlfEEQGASGp7xEg6AyWhVBRumYdwPEiQ4n9XA4sA==","shasum":"52069887f530b3976f9616aec0db2e730db53377","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190503.tgz","fileCount":84,"unpackedSize":2162521,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcy4XSCRA9TVsSAnZWagAAz2oP/0GeCs4vStMv5EotbsQg\ndj6gHJdCPPj9Zc1uPTuF1yOkV2CflgdABnTYQsobGy5BfhzTMBHMWiQ+ZmS8\ndYzmVBaMJM39tBsY0yN+W9yFCEAeydti3a8bF+MFV0+L+/BG5hnI4qfti/BH\nTOYzk+oR4mVX8Ctk3W/TNqZh5uZugM9ICvzuU/W3FSuOm1YDrLPUo80cn5de\n18Ppkk9Crh3U2bCaRF9fNIRmY1tRnWB044r7bMsUOqMOKbcD8pmQgZbv06wN\nkdXozo5uL5oGQHdkWrvlgl/15/jflNKKhkshc+IFcK3Sov7b5gcIjkp5bXrJ\nCfmvrH122YdTRvTpv2Oonvc7ddgjxRqHHhFx9+7ga2GN+b6jqd+JTsJluMLO\nhXKZ7FhZjyPskPLw2uymcL8sY+6nO0btgI1lVqaBT9HqMUGgyFrOmRaDMf3N\nfxub7tjpNyDhx3WNEyx5fODQyXHb9++dkl7cjeLNk3gSjcRxbkF8a/oWnrwZ\nItSWgtVo/OZ/goTpd+DVDB6A7mkQaTrvDvuCO4PEmeu3ygI237W9g634Q3KL\nkQz/s4RwDyTA3LP3aUNLwulwCK3YFIq2wvE1DXxugh2vwRE3Q2etUzhU9e7k\nypLBbvdysmPRE5xQh7rdNlHF4zi+G0vAQGVtysqRiiDLKhdPgXvOxiBeTECf\ndpkN\r\n=y4Hq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICx3yDbl0eIdWhurJ/HGJdaCg9LOXky0ir1EfltOCNEjAiBV1ASkqxZDwSzo7KJWXdWb590c3vjKouZ3JQc66ym57Q=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190503_1556841937227_0.3534242013556894"},"_hasShrinkwrap":false},"1.6.8-dev.20190504":{"name":"cherow","version":"1.6.8-dev.20190504","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"41aba0ca3775a40453a8d5ed4c6a05988008e4d9","_id":"cherow@1.6.8-dev.20190504","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-QEVGjQxz3zOnA1+0U06ehbr09CH8Y1SqDsTzMig2W77ofA45a/CJVIsN0tU9c84uC7CcNGTk2B7XugDHDcZvIQ==","shasum":"bd75da04c4eccf9a7b98975252f5077eb152533d","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190504.tgz","fileCount":84,"unpackedSize":2162521,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJczNb5CRA9TVsSAnZWagAAcMMP/0AY1K6E0+nAL2jGgZZN\nyZ+Jv8+v6/k524Gs30b4psH/tUuaW23a9a9GFf/Hyzt7ehGWIrA8CipFECAF\nsP2dVmkTPTVuu+lxowMzIIill08OPoLf31iT6z/aDby90W/8XKHcISx7EjYG\n9X6x+4lJFbq1xFPNvixEtA+G6jsFbw7yZpZdBBwENj22WVbduMFFkG5x9SfS\njysz5a8nSmaaa7i4GsrpUiGCMeALtLensu3EjOQJjj0KA5bbvGg0UDWVaCGp\nQvrM2wVxf6WOaCXbtf6pqWMjPaIR3Cu2/MqMjFyNWGmM/QTYm++VjKt7UCud\nbrfSraWQQv54ty69WoGzD+CdNRNDKRUyjHurQXbykRoL8u+cptng8sIN81Af\n+CURroau0P/P0wHkzbS+fBnERo7t86C+xD3NExCFunyfBaYr+gHWcmjH8iAb\nenG//GfD2T/gqYml5/Zck7oIY7Yv3PiS4urLCUlHpeL+WoGqW9h1KITCH5Re\nNu9Rruh416WFrpZKr3/B/8y9YsPa74GtJE37ZQbjIBauHhKFTD37Cag34RLt\nxt1g5cir1nS6dsNw3d7BeTGK/q2dONC9hvqiyJE8n9fY+SBpsjeLBSbipOpK\nwdHyfD1CPal83pGxcC1x3QO+hZzxffMrlP9a/u7WYAbkeSG82kx0TCpCSKPv\nYU1Q\r\n=QP4q\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDDWRZv7o/SAnKu/aCtGSUwoGgLze8S04ApLSUyQg/6CAIhALHsHpwqHOdXoDxTS2Voh5s09ZH6JZ45q/THmS4v9luD"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190504_1556928248205_0.12839693568226762"},"_hasShrinkwrap":false},"1.6.8-dev.20190505":{"name":"cherow","version":"1.6.8-dev.20190505","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"48514aa86a4c28b41ae922e1d1feb7739cf6fd42","_id":"cherow@1.6.8-dev.20190505","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-g78YfgVKjeD3mW7VQHcEISZJ3kE5jtnHK71ooOgqgYPxMzmxiHzWkTgbJclBY5YuiI2EkbVTThk5yXnuT/5i0w==","shasum":"5df641ddd22b33f53b8e8b3454c5acc96902fe3c","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190505.tgz","fileCount":84,"unpackedSize":2162521,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJczikbCRA9TVsSAnZWagAA7uQQAI5ANHqFPLVoe8znRidF\nH2BOKUgujNJBeEe+eMOp1C05WcJx/+KEHbtFcWuUbw7sijS3SKPyyoV2NQdR\nqgz32BJOyA1djQqIyeorlTy0SygoTJsqjU80KzqvPWmBtJRTGiwEW9H0Co+r\nvNyO6qRXKoNVk8EyUmJ+9SiJyX3+8ijFFmz+ItZJtDjTlXeg34SfTqznG2tB\nebYO8ejGi9Cy+atdUet1MkuWUwBrVeOv9gpdUHg6fbYQ3J4CsaesyX3tuJ3u\n0iHEYb+3L8YiJIoGd8D7VGnXjdjBrPuH2ayZzaBRjtmhv98GuGLGe1cbvxg0\nJy9wVmiFivgmT9cW0R9hSwHsqfzQgmsleWHVqMAYmzcDUfUkOAgirp6AfuCO\nQ7SjjNXXbgERP95oFHO7cq6mTC5jogB0QHFg+h1AhNTO3v+MTLs+XumCX3Hm\nTCUUZyoeebkqkT3Fe6vgAdB4tHdPV+3qH4JWxkPyznpLP3xzaRo9QtidUJ5E\nQApN7HynrbNcV8maLig4LRRh/83XiB/hOb8rExbn5wtZSqXzLBIn+Scba86v\n20M8/2Nb2xXRHGzv3cQg5BvViSq/o3cU/+x0Z/nB0d/NKK7A3mmIDcAbyXHE\nyvwZMBInpFx1qfO7rKZuihkBsD1ylmpjstUJWaMjpP1Cuzu5ENNLNFsSy1Rg\n5Xcy\r\n=cdC7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDRGOXeGl2nW+x5CIstzjH4wb9S4EzDLwuYFdLuNIzdjAiBkn86Jd104QqaoPcniatif7j3ch6jZVKd7w1YfbuXNwQ=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190505_1557014810517_0.4998778024521451"},"_hasShrinkwrap":false},"1.6.8-dev.20190506":{"name":"cherow","version":"1.6.8-dev.20190506","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"17f49e98731cce0102e11a4e0b7b962b43ee78e4","_id":"cherow@1.6.8-dev.20190506","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-J6QKrMggTJChOQO3Kh16ZAb7p2tDVpnDz4dgIU4SuOFm3RQPkGrEexoJIPVC4ypsuCc1MeyP29cuhvB5hOlcAQ==","shasum":"7723b37e1ed4a188d8848d29bf0b24560cf002eb","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190506.tgz","fileCount":84,"unpackedSize":2162521,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcz3oHCRA9TVsSAnZWagAAz5YP/idWIqcdm7DlKK1/0iqu\np0HIlhSinViLXYX8lTvCbDvMjz5uyqY3ZoR4yFE9oD8fCf5i6cvlkircVXr3\n6CfrjYTLtVqKIy5f5ZlShSGMHmaTIAREbQVv7Z+ksdt3PVg4gBLZDqxFxalp\nWLrKnuPaBHm6eVF/vIc9H3bIdWJ2lsluC6CNLe1mQdTblkhlMDDVH0YUIGor\nR+JbEbLzvAqD6PN1hdciCRCjKQGVPBKaMo7MPDe4uBoXNJQtgPA1oIUiIBuH\n+OhFM6Wpd1PqQJRhIfAiPDEDtBwlGhDMFUCyrYmVh5+c938U/tlV/2jX/xip\nD0kljqohwj8TdZqtSlQngfXuVjgyuxalTvFYl+c9x0D6tBJBUrWRADu6lhWC\nuTxtKcE2zdQed2AttrA0KElWupcsvBvNkPVzogUG3sAzSlWiNj0fwmZmbfkN\nWf1aEqoX/c7VpFygONKMzJtcUVnA+CEWe9CWyKNmwG1JMw87Arc/gDmsRCr3\nHwFXsLpCpPQtoz24CWqfDa+U7IYQ3O482GgB+Eg9qH0cpxkALBx0ZEyfDuuT\nMMjycrOYWEvK+idPN469yp8/CuRMsFZpRAgrjT47esMvRF1R8wR/GRqRbAwV\ntfqVjLbjCoCefnggfSjuH5vo2iGrYfgW0dXYG6sV9JRwwsYqlcUubDCJYNUA\n+AQt\r\n=MDWU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDC8lkJXggJgu02CaQI8C1ot+t01Kd8nB6XfIG8hfzxHwIhAP0uUm9hYwi0iTKmsXjyivomh/6Z+PW+HamCNpP0ggST"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190506_1557101062264_0.001553018788890137"},"_hasShrinkwrap":false},"1.6.8-dev.20190507":{"name":"cherow","version":"1.6.8-dev.20190507","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"80b9948c2fa218a60bfa161529205f346740f8c2","_id":"cherow@1.6.8-dev.20190507","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-19cJQWAnAseH9oXvSAmcRIqrKGgGhBwgJEMUouFD5Pp8eYgS1i9TpZAM1160P1dkhHN4AJAj5jGJg/WoqsbRoQ==","shasum":"6e8a6fab6b94adf09a18caa54c6511f6d2d61db9","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190507.tgz","fileCount":84,"unpackedSize":2162521,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc0Mu7CRA9TVsSAnZWagAADhIP/0DFiUFn+P7H5nMJu0m7\nP+pCk85YbTNCaNu04QgqfyH1i0VAzI/LQk3q9aiOzwgsduwb0elFWq8dOHGF\nenM0b14TG0JxAgaDUgd9a2ycAbtWacX+uihWPNp68ykCTaIpcw96fSWBOjO1\nmWmLAgnxzSvyudcpEL2aPIU2kk6IX8tUaMWTCn39qqTrq32s2U49AcxsDztE\n6KvrFrBtXAY/TmuWUrv1NNPhVlKayUbkVkFEsfq5GNxqzGfB8dOcamDEq4Zs\nbSqmOnnxMcGw1OFTIJOnI8z5PpRzZbD4RzzsdRS7ffQnoaWKOQjvIvjYJBne\nz5NrnUcQeUh3F7btphVP5IJ95gOfvNYjNL5gU1Pvan0AIJNDjnyA7tVXW0MZ\nx1asA9XJs4O0RUyYlcbl+QdTnslv3JmNUrGxAc+YpLvH3xQzhwG87piY0uwl\n8E9Dt+JnOczUEReIcgtehhwEkrQMDSOnW3+xeQH8Ndj9s63ISFncl1yDqIim\n/9fCBq2LCwqa/2HA53uVxBQKUoPcyFX7X7JCvTgo9L+wP6yx9WcFmnoEAMXI\nNAuBND+TfRa+5ghwOD/phI57KmJ1YB38AlH0y3t2eBiFyd4BRzZ5cDoIcb4+\nH0rds2p5ggBAbV3V5pJO0ZRvMOjuLg+FpYw7Mmgp2c+h+P6qVr8tXKK/NIVb\neJCk\r\n=2q1j\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDpg6aCMkgV7Vc4+VGbz8A/aUPgU1QjUeHu/zNxXz4iAQIhAKf54rkx601NThRkv7AH2CZ12F4WF3L71+jzvgl63pVO"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190507_1557187514395_0.5086282077233653"},"_hasShrinkwrap":false},"1.6.8-dev.20190508":{"name":"cherow","version":"1.6.8-dev.20190508","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"5d1ab56a6a77c5b48c93df8f07b543e2fb3167bc","_id":"cherow@1.6.8-dev.20190508","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-//D1vueUDmBF+T/swR8/jZtsiSRAcnZKE2CcbO10AlROSqpcbNojeEd56z9myCLgLdnEkWj73AHowmqNWB1xXw==","shasum":"79d1d0245c41a87fb99330262a88a1e162a966cd","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190508.tgz","fileCount":84,"unpackedSize":2162521,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc0h4/CRA9TVsSAnZWagAA0t0QAIFzD6GiavwXMrZ+ic2E\nHgVvKNzeN01ulPORWbdgsyOXq3kkT/bQO6sE8sXScZ3a9gHzWQH2294mzPaW\nOo6VLFek0gGD8rPeIutxkXRVRs/qDZujC5oSojGR3AQ0SDfe6SIKq18mHgjC\nuO1r1TkDbJOKIbstXv/YkxoOmoYm5ebB/tiC8cC6ImojttnOAx0helrTao6L\ng6wlevzxHixCiwzTKT5MXV40A41jWuU23X/6RO+zpUAoCFaNQZA87v2N4QrB\ngLsAi3o1peWkFq8xIGogBvLtsmXbDa+kEAbuFJcxOxIq2CL/VLvf/Zc1yAfE\np5AgVuKl7JvnTEiq0Fn652ga1aWjP3VaWuJT00VBu+ITIm5dEM2N0mEeWYZQ\nbHiex8tEHzjUxOaKLSi156fSVpVnObK7ibaMpGeGssFEbK2zV/qGGDvh+ibN\nmZbOs+1WLCQf4M19DHott3pCrPF7AEhBcuZvMvGLzVM1AdHNeSWkGgW1g5p7\nS193NVVm5xtfO1bgwQjPhC8TuquTVQ1rnw9AY6lLKMVgUadkk/34qQnXMTYk\nSifVoL0pg69+5upPbqrHD/FjFyIbMmqv3fxIY+mOky3/BwYwoxRqpry4oqWb\n+H3Ehqkz/J8otUHg3spk+Ry/UHBDgn831TZ4wfD479rjXoA7cMWK//f8APLK\nO/se\r\n=2hRj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCgIcTh45I56vI8K5X8aM1GcZsPxxoZReMRuB6tEN65PQIhAJePjTHqWMqG+h+Pvhazlg9NFQONYmeb6e6Kyb9WxYYu"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190508_1557274174715_0.9342025075915885"},"_hasShrinkwrap":false},"1.6.8-dev.20190509":{"name":"cherow","version":"1.6.8-dev.20190509","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"479dc0d0cea58f7ce963b5c6b227df017a730dd3","_id":"cherow@1.6.8-dev.20190509","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-AJGAKNknnz+FJx3kjd/LHbyL5jdLV8k9/SMUHHGjn0kuLpds2CcFXSl3K00oonhr8w3ZHwy/gvAlyP8ds37YwA==","shasum":"25bcf9db99e12a7ff95b707156894861b0462cb6","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190509.tgz","fileCount":84,"unpackedSize":2162521,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc028GCRA9TVsSAnZWagAAbPYP/1p3/4EgBcPlySZH0wu1\n2Uc/aWKIYIX075eqYaMOHCFKAzq4mlWoencPbiGqldlWTS1I1xBfAkRzvb8t\nqykluuokOOt4SZvlodfI86WgcE6EAWPBoQ1St3GOKNENQeJL5P3CHil8xp1b\ndPkxIT1nywbf5ZvzJ0qtWg/WxtcuE4BagFwmSujshxkdybRZfIuIbZUuU9ro\nuQwMP7eaCGTyT5r8oUazOTkcGBySh+/A3vIyPIPsO7u4zQYjUG/fssvqVs5a\nKvsdhz4QMyQO4ROkvk+RBiTrAajWLYm1PF8kZIe04tu+VJLboPDcziq9p47X\nMDv+3nEN26ZdEKGjMUq1Al//i0V6KdVwIdcjXUd4mX1/gMoNYVwjaPwcC91H\nM5yHXTxlzKdjaMbJVTM2cCoShht96wSlh/l0aDaH9GkXfGiYWqG1osqCtO38\nODzICVriQwoC4BNDep97SuzWABkAmVb2mtTYvXR4/Ff7PY5znMaAPVlxdFkr\nozAVVPAs1ob2+Rdsa5ziKhbBhDiRw4smD5QdRN+TqtwvGbfaYUuCRp/HAGlW\nxlZkugbNSpATvwPfRPKmGlcdM9mFQWyO6XM8XHk/V32RmKWzxkfRViRlKhOm\nwaAk1zfCoDYitUtRMld1WIzYGYEqAP9+51r76yGcG98VOheyXhDXm/BBpVAk\nWZrt\r\n=3ANk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCxm7DyG1HMZEzBd2oBjcSGnwBTp1PhXNX4t1elyHaBtAIhAL4xzVgBWPJ3UXMAUkAJ5b0Sw0TcXXTkPZJbiOxIKC6P"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190509_1557360389799_0.9497545462522381"},"_hasShrinkwrap":false},"1.6.8-dev.20190510":{"name":"cherow","version":"1.6.8-dev.20190510","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"a794fb60532d66cb767134d25e2fc3e6c8de5699","_id":"cherow@1.6.8-dev.20190510","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-tZ5UNM0zZy1MhYrIR4sjExIspk0cHcczRZ47g5QtS37ZC5bybE8kyiv22UBhjqemewZnYYitJVV3jCYi/sEjKg==","shasum":"e301e9b9192527b3657297fba2bf9ed2553445f0","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190510.tgz","fileCount":84,"unpackedSize":2162521,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc1MAQCRA9TVsSAnZWagAAlmoP/2DEqJh4o6kjhUv+TEht\nRUXXsHkdIa9YXzjkmy9Tn286NEMIws1OsPucQU48VH8bwrSFQFmcvveTy5O7\naYHIwMiigUHI9qwwGbvzPJeqk6IvakVyaXgK0lzN+ear5n9W+b5zIwFF5pSw\nhIzCPqfvxRj3J+CeFDiYwlUXUPT0O4TOSlH6kXKoBksO4Y8f6cLo0XYlsYog\nq80ZYPy/kemCTsaFs9A6AXsBS6PZaFCOv4QcZhX2h0f6ylKOsFkgpsYDTCE3\nC2w9xoUmXYznFUv+dPzODs+2O+t2ZTSSrfuA9IQzuUoxBTg/66aiLKtGbEaz\nJPrSfJovUWBnLNOJ7jlxUgC4cn/1cWshZkj7g2/9w+XcOyteu54HldZD3tlT\nrbiXTTKsND9N6XYKEaamxSygH6OFoHLYMD+GNHnQjGlPjGPUBHwT6p98zDqM\nqSibMa+5zZD2fZht+c7I8+7eFvCPt4xjpzkWQvx50OCpQDEO/VO9Yy0plhL8\nItYuvWyZQuygUBk2YGNI6a51RoF5ba6eug2YBOZyghQhnR3os4UTOkXSd5k1\ne9bTgIAHkRhvETj+dG/QXi8bmBveN/eGjrOJ41jXqINMuiTCxqRre8v+UcGd\nVwzxo73YyFfK/uD6D1L/v2ANqpDibTyfBW7OQl0Wk+JZqmSPfMfI9mzfTFZN\ngSnn\r\n=vId2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBVOtBP0hB0Trb5w0aRAw7Hrf4wYEIZFARmJi0Pcano+AiBIFOJiUfLRrihMmXyHR9Z29rDuShWHJtKFfU5oXYm0zw=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190510_1557446671571_0.8395573624258323"},"_hasShrinkwrap":false},"1.6.8-dev.20190511":{"name":"cherow","version":"1.6.8-dev.20190511","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"ab88a8c6871004adc4b013a65874c368fd0964dd","_id":"cherow@1.6.8-dev.20190511","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-g8USYOtEEw+8ih0POX9k9IPA+x509Psgwh+vOBmxM2XYNNACRScwxtDMl70gxN+G3IwTkMTnFi+PuTP3Mu0Eag==","shasum":"1878ad5f34b3a17c75dec1266cdc0b7b4dfaf992","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190511.tgz","fileCount":84,"unpackedSize":2162521,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc1hHCCRA9TVsSAnZWagAAPnEP/AsO6JKBsSeBllUz71Vf\nwBIrdcBv899M966nNFkGZ4vLTQUiBw5vtxBv11sFPqugeGduA7rUO5fnrTJ8\n9R0y3yDcycQdDCyBHlV3kkpYzrpnv5ypm5pjMGv/wqh9CuO21ODwHvl9nL8G\nUNENAhvkI7nqxRGqUqYJxE7BD4udUtt8FPWwhfljIiKXdFEFJSK0qQYarfvv\n4dyPNpSkbVs0mW0tD8Pi6YXjcLSykmJq3t4T8Xxz4R02jhokStei909VG4iF\nu4xtDJe5PvoJYh/8stGbKbfXou5kIX1xz/5IZX7B6GWLguXwdfWR7OpyEeJW\ns3JHN39NrEbHbFEU8aapsJs/y+WKFQ7+GkDuR7pJjSTiDp6fMEXvt/KJP6Si\npPMDRwiUey5mvbs0TKp1EclqY4lflJPvecYN14tFZxB4WiNfFHlxlfdswaTq\ngpDjbSZz3n5+6gn+97yvvmZjTjBfipxUMGuQ9V8ftf85h9hoEIZyo+gH1H3/\n7OcjdWsVB6hb9vo9bvqXwI6/QH1CpJA4VAm9AWNLkCwESPB0VWj/sZJNf4B6\nWPeGR5Wpz3IPE5xE8c+o4c+FRmgInlNM8/NaeSQOJQQWm1e28Cz9ayNGbVyJ\nRkQ7OWfpFJwFGNskKQrnGJdOjpr23ITqeMS/p4WhtO842qkMb3evL2Yh6LbK\nykWk\r\n=3XgZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHuomIWeuepEtAsVGXDOUB83lAq1ijWe50gpkan4wT13AiEAqlfwlRNZsf8LVUvLQI1DrJOU9DeoL90vYQ+S6sstYzg="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190511_1557533121195_0.7681692772095481"},"_hasShrinkwrap":false},"1.6.8-dev.20190512":{"name":"cherow","version":"1.6.8-dev.20190512","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"6dfb1bff7f0c1a2665f1454bce4afd3581785443","_id":"cherow@1.6.8-dev.20190512","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-b4E8Jqu9dxDJspgDcsOZziHinpAb4BwsUZlEmGOe6bQXIt3dDkT9cm9GLhVfTQiDCwxa2F72GwhWnelNcR7PJw==","shasum":"31c0dfcd3f581f445fccb1dfac77453768c6f3b1","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190512.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc12OGCRA9TVsSAnZWagAARngQAIQBh1BmuQvgiaZV18Jl\nxQ+ue1aNbhCDpagkbJgucVcdwDuqr5cBb5NeUZY4Sqg46B7UowSY/M47U9Mp\nO9kdJJ7S4DEVSkhoqW7TCFW1PxJg8Sgd1cvmEmEB8wABXuCvA3yndpvqul9D\niPw04RFB3GsrpxaE00zOzETdFCnKWVY1NaNBQCJ1fROu9a/j1hfbv0eZ5yTI\n5kUxEbFraDhNXJQSxuxqOpGtdXPJhdsIYmivzfGm9WJki7ko2kL4iO68WnAC\nDeJD+N9h8a7kj/5Zi75iXUjOGFkCD3/+G2uXt7NWMnMuEQt3l9kV9pL7NJ0T\nt8l+7i3y7I0D2vXDENZjiScnlMmzzX+PkpkKjzPbyQxrLj0NUKhgBe3G5Rjf\nzruiX50VIOQizEKHsxGzWdZW0hRZme9BPyZyJswl+Q+u77VVTyRb2ussgNp8\n23J/yc2QXh/WFbqv9ulLNgMioO8tFU2E9XyBS3s5XrNhLjqcMW6GWPyC0+qi\nJULRMWZ2yJ8IM9/1pUU/JXsW5RabuvJ1o0qFuoMjeVJlmDoYmdZJt/i5KcU7\n+KP9JOUkOGES3MPu0OLTucney5zhfaJRKQ71oGMHWBAhXYmG5joLwQNJD8T2\ne5TEpQ8LdQyVtEin01EfOMN3VLilkw8wjcQx4oV9KUMrgSbMYv0UQqbT7YPI\npnCQ\r\n=WI2b\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD0NemnHK8gwCSkvOHG6zqzd1KMGDmalpdtcDWeJbhZ8gIhAKyiZ3ukdFODSjMN0aFvT5PF9CRpsl6L9OIQ9Bb4Fnji"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190512_1557619589982_0.6195239941490094"},"_hasShrinkwrap":false},"1.6.8-dev.20190513":{"name":"cherow","version":"1.6.8-dev.20190513","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"a543d810fe37087d7a8867547805b693152145d6","_id":"cherow@1.6.8-dev.20190513","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-csyHIXcLL5yCQrKXrkdpM2DO7c2oasVHzI7cpFldRFW9KXQ3nZ+8GNgUZ5pfUB5ogft6M4QbzVJalxT6BJfcgA==","shasum":"e3db1edf9dab60c9965567a998920510d180f4b8","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190513.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc2LR9CRA9TVsSAnZWagAAakIP/3beqvIcXLK4Mpt+1VY5\nLq8JF2E/yHIHbZPsh2B6+lIUy6L3r2HI74WrYoo8184PGlpwIud09QeCqCof\nkgR3fSRl5kDB+tK34Wc20v8eix7CK6mPOs/50abEHb97NbkzWSwjTQNFxVe6\npISqMRx7MDSe6Og7C3RskmivYQjp8Ix9V0F68Gx2SVEFN1QP6CTJh/rKw8A6\nZgobPIl3k7Aty+5aHSxsTge5dryF0AnCE6Aksk8i5TNL0ESbxrVsLvlK8aHz\nf2pLNfwV/JDRsCjXT70wQ+3iGhJtiqc6CmQE3rtLEoRyv74BTbZUTswni1mN\nNCV6+h0RuY2OHgPbRQl+LNLe7xXl3LAG2Wp3N2/cebUI7OLXaWkiilzCJOWf\nksI7X5m/8NMKN31cBLnDMgPWCx/eJh5yXr92Gyy1J9huXTwdqXU7DHxBhZGr\nUQdYXk8FUAKKUVN+SXFILCXktRzlhBKN18Khuf7+Sy7xqsCsjnajKVgKnBn1\n0+kzh4U9ExMBdIScKhVm12T/yJxQ1UBcA5/UQnvzyRS1dsx476Oht70+nem+\no7FnDhBGvYjD9DmMJc6A6OZXqNHkFatlO18DrWVAiyOEMbN+HSKgIM5D6lgv\nZIaosrA2luVaD0znlX2usL+ix2b2iz7rh4Ss3FdmKMNV8MsNsRm8tou+PWBL\nL3uF\r\n=eWe1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBOLlrQvc8Tw4ZdC3N/0zjHU7KIINGVbocLXDB2y/1XBAiEA38VbBR52EQq2Hfrkn+6WnIpYZRxIIQomk3tLfMV6w4Q="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190513_1557705853035_0.6907072818164923"},"_hasShrinkwrap":false},"1.6.8-dev.20190514":{"name":"cherow","version":"1.6.8-dev.20190514","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"05abadf03b4fea1fb06d5933bbadc11ab9b518c2","_id":"cherow@1.6.8-dev.20190514","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-Y0hdsT4+rPVSuxkf2rvgGLCpIt6lh7IlQKqstaU4HVdkHIXsPbLAGwkmQFoy4K/BSmQN7jqxB/ph3QV0UdYYCA==","shasum":"9e9dc18c349c428a3f4e876ebb86f3d64268f77b","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190514.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc2gZOCRA9TVsSAnZWagAAwugP/3M1gOs6fgvqjOYi5QFZ\n5gnVAMlNHJaq6fFZVmT4Mi3wav0v8uG0KMD6SY4Elovz9FToz2ZrAa7aEdjB\nOXXOO09SSBoghIwj+4FLqY0kqQwe6cL/Bd447TRjTSdTtJVkL6k3CzfWZpk0\n+bBBfYIkaHtwng8VWnNKP/8/qciWsv1UoSGtGnpdxY8gJ86qGZevvOpAllB2\nu5U4Ih9mDXLBGikXXrBtcMjLtMX3MmOSi58+S39txIK55TL7wrRJ2SmxluTR\nEomEEHXNvbX1aYNr/fl60umG/x4rWbypvKViu56Gx5Qw5CCPKW6aJB4jHTdr\nJJy6m6tn2EX335vt416ZML54WoaaThqzNmqHagU+TFZAabJNjkydzhQedB/m\nLRJt+9GAohXpOwK1DdQcXSORYBmUTS6ie2nnQKJthTu7/f1u87AnRelW3VAY\nE3eT3XwewIGDqpNstB6L/RSKbdzi4tCoLZX5HVHEdNRlzh5zEAp02cZZWdAH\n6325GijduKIxapWlw2cFwOQNsp0UdTewecp+mM50KVW2YcD1JZud2hfutWVY\nh5dMkbskG0zBXTGne1GwVJBqyj96+komtCA/u7ZMsc0oBNqj2CUi/u0g8lUV\n9Lyd5WRPaNqdwjzTjEvRhWwobafYcPMAgz/3vd5RPf0FEuwEDG52aINeCBp4\nfxdI\r\n=b13c\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBNKeEtmvKaOJJJEHNxTTGRdrNOSSlf83jcaJ/yewz/CAiACxOIFUtyTCK/PMCZnWYzZYom3Q9aF7BZbsw8oPhcGVw=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190514_1557792334061_0.14131309128619862"},"_hasShrinkwrap":false},"1.6.8-dev.20190515":{"name":"cherow","version":"1.6.8-dev.20190515","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"b269b5cc3afd6ada944b661c55b53f07ed7f52bd","_id":"cherow@1.6.8-dev.20190515","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-FHSEKV+7BipUnexh4qdre/e6VscGFVXLjT4z96dm8ab/6csm3Gt/TsZJ0Md0gY0f309Ic5v9VPCsCyo2R2Fufg==","shasum":"2a2faf0f4e7d37c11729475414600287b26f198c","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190515.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc21fICRA9TVsSAnZWagAAqa0P/3XXr8OSOL+SbscI+OU1\niossp2rezyyuRHah5lr1sr8ncWOduwI8CMk1Mf7tMfmDHL2Pn2Z/QM0XH3Fp\ny5jh+HhqRCtY9kvmVHKtlQMTd+2RuTO/uBYyFQZ/Iyefh02Bj4s62MU9gKMJ\n2fZzhUCPo2YfvcHSVGVMmydOqDzmYpWQVuuqjnP73PgIICBG5Bd/tkayagEk\nAa6/qKWIf9dMRIV+sTuqer0+kv2j1Y3VA/Ie+H0taHvDYF+2GNgZfBOPUMJx\nnUlZaHhm1Q8t872bxOx131wXYRerBCQB/gDFlkofI3E4FYe+HWyL/sQOhIhD\n5fhJBDStyCm/YnRv7d2h/N4OvfJhxxwnVSCx2LMBZLxSH69n4V6uMtFLS1YZ\ngRMYdZXHs8OK7Mpodu2OkOOhvRX5gZSjFDzxhyGP+4bZ6Tuz6G3MWRthBMC4\njhUuGDM9fdqEwcelTJnxbXZ317qHwzJBcaSpdJnbiMcgtYhuoQNfGp99z1me\nwrC0cCjJljdM7Q4lRDDHVtF2+KoYpddfndXkG6x80286mcY/3Hexm94f4S8H\nCtCfW/Qk2/gtqEW/nwp1SVt0+3iD8VLMu/ISYAlPkUgLikBWFgkrkcBkiOAg\n38gzlG9VxD5VKy3ZRs+fVm1hvCXXXqCmTMndra6zkyGMpt0KJej4A8TErt5H\ne4aS\r\n=wwP8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAX2LW88XlySSq3IO63K/FBNXmm3j84Iq1aqjssUE4JiAiAdVBI3Cysdj9Bh0DoqPEVW2BV6YmZ04YPRBLs87IGqrA=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190515_1557878728065_0.9612954914773708"},"_hasShrinkwrap":false},"1.6.8-dev.20190516":{"name":"cherow","version":"1.6.8-dev.20190516","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"068a46814f22b2d69df3b8a3e2464ecf886d0f3b","_id":"cherow@1.6.8-dev.20190516","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-EjRE02jPq25lYTuTJxtgf8F6wVh7ta02qB7/qDbNEwN2s6d0oCy4FD3Saz4yJqWiGMuT9SqJlOwQtbgzJrnnDw==","shasum":"85a155a4b88b49b765746a20b47abb55bc7a2b83","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190516.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc3KmWCRA9TVsSAnZWagAAGCIP/iexcXrC6LuFaTK8wOIZ\nEysOgDceM5D0dUBpyS0O1ijtXOlj4fh1AMith0a6shrPgZGe9bKHRSVyVjSQ\nihcke8CDX4HdcGqBbbqjQ1nJDA/VXVKs6XCr5OEqqsmW/hxJtnZSa+kRrloU\nqU86VSR9QI1l0Xg3K06KI6hW42oT5Eft1JYuN8otvzaePchtpPt6MfJsHCAq\nRj+Z9cDoKuB+vx1cYRHkQvjkOpkb2MK65VMm8c7smPMciCfIyDYtYMKcQ3e9\ngAfF+l/hFv+ISz24N4hKzg+IWqyB9b2hKGfD2deFmAYTDrQcjKOG33z2WEBF\nReSQHf4Sce1NpTapr/DLuHi1+eWk+SwP5N11SKg+9jXd5kamN7Yg/KZdspA6\noDr0j8PLO1ravByOSJhjJYWkhIivR5otnRPNpSXBRn6P5RvQmQfXKYgmJRK+\no5FCeUpQzzseC9UE2pvkk+M2iNzAUBdHojrSjq3ru+W2FCBW3hWrDb1ISk/G\nUjZQZNdIOHSdhAoD3GLm3hqdnMpepo2/pZBNGN71E3CnvmdKktS4ARWT/A4W\nyAQTf20p+GV1u+pvJsswwn+BPpTEPYfbMEqoHQXkc5bxSJe5e10iCtQxKTt2\n0hanXjRNdwNzrferdi+EMemihwtjyIdX3W2wbiqBrLbCy+OgGOSImKHTWq+Q\ntgoJ\r\n=tFP1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDs7cu2rwXGMlbnUvkNA70O7qnI3Z+DlMe3Cg+yxkxL4AIgcnFgUwC+yDpBr/fIvUNVfrN+u8kldmNvyZcmGgoOLhc="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190516_1557965205701_0.2035682802206964"},"_hasShrinkwrap":false},"1.6.8-dev.20190517":{"name":"cherow","version":"1.6.8-dev.20190517","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"63e5624b510b9e865b3570e302e9d2441b6aeddb","_id":"cherow@1.6.8-dev.20190517","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-Nb6k6Uw2qcSZsXYPk6mM49/gpuCpR4DxgE0ukgqe2pZxoHqJOZP8IngJH2Z+rqcl5f1oDIahrMjfZ3AO8XJaRA==","shasum":"8bf28d20b278d38cd076816028fd87ef035ae576","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190517.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc3fqrCRA9TVsSAnZWagAAbtUP/2fuhmACEwghj2+NCp1Y\nOzopqZT1oruW28uqLepZUfLWV/wbTwDezeA4/FdbhhsBWqAAkat15BWalhl0\nF6tcLNDHm0iNDcxp4LD1IHSyVqZR1eJIeoANtiPmVJYtF9HhHKM4PVkzq5Vf\nO9Ed84S3ozcMQQ5sPpub3cOYs3jHEoJgPpVT0Dmfr8JAZjJIfIiozLzZVvfu\nqYu54Ynbb0lPGmRPmUyGJpXIl8+T7eyl7B0BKDPCqLlRQm3Ba517IiESiHSp\nER0moKdLYOH8T9k0PS3YaKAJMaf+xFkLjAPzNEa9wccfwh1e8zpUNCQDlv0u\ndX8/cif5fZgOzAUr8NDsZ9dXxr+6W8JXrW8uRvsjvH4H3uOguL+60loGtTLl\nKmGKD3kBd2eidZQFJvde+8Rlat3RVyRvalSv8F8GgpBy5dg8xrjspliuiAEH\nZhPEvX3Ck9in2bKaIo3acsjjI8c7++6/bMKzJctOjHDzazBYmNmqDd5y56iQ\npXvHm+TdjONigPTSZQNYwWglMOUdjkY6RRo9Emt5QSW0nVITdlIqm+vBk/rE\nxPSNKzBDjEiAz7uevZ6HmQPO8xLoAsC3D7iZ8EyNHfYa5EULPFHDRXftGuSd\nCeaGcnICRKgo1bplSstnked/UXl/9iMYvd1GpfZSjOHeK1XOcC201CH6uw8s\nPPQ1\r\n=qGga\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD7gmUmNwfE9LWegsQAS7ejpdlsU37u7R3uoQNCX2vYVQIhAMKF3r4f4WHnSOwDM43y2OBwlM5IdwpfFfCgz6Per1zg"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190517_1558051498379_0.14371743953476313"},"_hasShrinkwrap":false},"1.6.8-dev.20190518":{"name":"cherow","version":"1.6.8-dev.20190518","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"d8a817160a77f2f9d6a1927ebf8966710812e4a3","_id":"cherow@1.6.8-dev.20190518","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-7TMkAwdtP4xfCKXoGCJwI/FA5nnfAKAtZEf9+oywzYNHAWZZmhIWadlHGAIq2yJ8sZ4xbypR2VDn5Ba5V/toQg==","shasum":"e1770f3e5f5d6e907b43b69564839df1f1ee952d","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190518.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc30xLCRA9TVsSAnZWagAAs6IP/iGpJlOdMa2FtYLMagUb\nNkqgjH8PA+X+gAFzg4fcIx8KqnyEq0XhO8C/d3NsXUw1iKbrel96Vi/iKlog\nh6NCHwwpBJ92Q9rehvE+pCocupHIaQpLShrtdhMomPacOYu/AoCxFFrDIWY7\nq/8g43I3s9oPKzqdso2ra9i7JqRMBepBmHVeR4Ukd+d0AzDKjP27pzhF29cx\nIFxpYUvGAMrEoWfhD6CgmQ7+nlMe2+3Mll0KeeMfDXd2rIg3f3C6yD3RxMMQ\nOhPIK9nCCXLaCH6OoQ9IjVkyu0Kfz8cVwTYt4E2AR0/vtP9wOY2lE20NsPkq\nN51det7XoQdjzDc5odw5qax7hS+u45wlaYaBdj9emAXpGVWz2tZbMOuunOXE\nPErQa6ZUkGCveccCSKIeaG5w1g0j23/LgSKOC9P0PJkWXvtQKD+fiW9DKL18\nLx/UE+f5kReJqCyxX4y783YxHMMW3e8KzLN81yhW0Adkc3rsLKnJqyQ4Havb\nsJ+xDeFz5fl205k+2Q0GXfBjv7T0gyUJi6YbkUq7IazxWtwiv7vcRCL7qOuk\n3xL9HEemtP1ZSKKHwhT7MnM4SVpMHKSjZfEj3ybs8Wm9Bt/fnzolaZ6cFEp/\nca/1lz/4ObOq7V0aveQvvAbXMYCNGHAdplZFRNB9QZJkwQ7122j/FYzO9oJw\nLHli\r\n=PAZ/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCUYXgiUYc2mlmWWsBwK1sgQRFiF8vVolPiUdD/F04y+wIgU69nY0xxHBGAE9IhlL6WvV0SNrSXZAW903kDBxLqBj0="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190518_1558137930438_0.1751477853077652"},"_hasShrinkwrap":false},"1.6.8-dev.20190519":{"name":"cherow","version":"1.6.8-dev.20190519","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"00522c555e14df79735db538f9c6e4f3edd2a544","_id":"cherow@1.6.8-dev.20190519","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-75/+Yu8dkm+UPgR1uCHoV966PeFOHroYlw+BNqg6eJR2oqwUKm4p0qy6doOt77RcQw8hvjfzTIXQOf7HLsvWcA==","shasum":"25532da9e6419b99570b929ab153b4a3b1d2b230","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190519.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc4J5bCRA9TVsSAnZWagAACBIP/Az0fdmf7/resTUNEo5s\nWcPOE0zc1CdcQa4pWl+GUuibK9Xo+1JF+p6jPRmHjMU83XwPU71KBQmgx0/P\nKbCd/WFXFcP0IWPFWLJ+LSc5dGfXH0hdfCKs7DirYFe8yDI1an8ZogxNFmet\noNFvHAlluFhNnFEMWH9onyItSmBcujxojgkbZWbWhGEU4iURX7t+wz9I7hhH\nETPTUvp6vP6vvTBXW61V5/nq8c6PWwG1vq2gawQxZAnL6bjdcPTZG88zClqc\nLxETthAbuVJUSvL1DHvGUAXdAweGp+a0IPpbFMNw6spUDYzjIMNFWciDicxX\nSUOuvt/Ow1yiS9LvICZZm9OeAQ8In1nzl/cYIikfqTtinGPfKyt8mgmNh5Ls\nLDxkQuWyAD4+YoJTA67COZQuVHGu5HrKKRzcqI9twiO2ADoyzuwxz31ZBcCl\n7/zKlhioxw4CcYwMpxDrATYoL9imL00yDE6m4hsEhHwQRJqxFs7Byb4bQJG3\nrccufRA1H7/aaveiWQePPRhReQW0v+i9XPEOSMBP3tb6clqlDz/5snxlTVLD\noSkq790+h1ihyEB/4wjObaQsSzwXt67heRb2PWo3v7PgGNWWyvesX/YBzgoN\ncMHTLla4caKvwXNbRE8GSGjGvLbnRWkwhrmPj2ycHbCDF4GXEk+W+9fbXkJO\nbwPo\r\n=eXTV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDD3jCSb6o3Q+peJN8OeioAFehPcKNlB1ECdDxX8B2QHwIgRsBw5PCyl9C9qUIbfh5e49t5wHJhfqieM8zHVOzjTA8="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190519_1558224474232_0.487281678509246"},"_hasShrinkwrap":false},"1.6.8-dev.20190520":{"name":"cherow","version":"1.6.8-dev.20190520","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"7bccb6d122bb6996ab80ad40277340c84fb48b76","_id":"cherow@1.6.8-dev.20190520","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-m3SXQ/mbpk8MLOaH1jiA8svso4tT9MCJ3aEYNTkuEog/fpsr+q5bIC+NmDSMByJ5Cdz639NYvxuax1NYKS16lw==","shasum":"96ca8c0367d7e3580b83db4c1d075ebceebaaf8e","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190520.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc4e8pCRA9TVsSAnZWagAAg0cP/0IU/eGdjTbZpcuBy+8v\nls91ob/b+M4ECOA9B9VBXiW697AyjWwDi40uIUTi6LofoopQR+VqPFVEMhlV\nODmPZG9dslDmHL/VQAeJRrNIIqqHq5a+DKTUieg0c7urUY81CXWUTWVC1VvR\noKF4vw7EzIKdTYbHxgd7u8U0TGRc5YtAiQNmCyzjjtyRzXAwnum/P1mRWMwb\nrgx3UGSxFXSe7dYtg0JjCwLZ0sNsGcKfIa0H52teAeRz8zRlspz4qGcZhyNC\nhJHs3GpAeZXcZi6GsU9+SKU68qU9szvxMHeiCP/ZzmfnM6ByM78RwQXhM7NW\n6jZTKc/hUTwe+tzlb9h2x7rQrgglfYc6pJqnbCuylHIFV+x8UL03PZ5xwHTT\nOJMKMpW5EUGMKA3ZOFfSQ/lZ2nWZuvu+rdtJRTeJd1p5kJ8OVgCTEIb+rU08\nXAAhTvKw2IaPpORzxng3AOkfbivgpPl0Pnju2YNVNiSVs83n0kRkKHCjXGBO\neMpfZr2yEUvSFq/ZuRiU7VqtEUhtAWRfU7dLxXCCqVwjjIrnbdZRqGuRzQnO\nCeUolyw3JZ3XnmyYoOIyZ1fcyqwecifvV34P5nXCV7nZWTiLL4E6abvIgacc\n53+Be0X3AOL8ABvEAhpMyeh5nD4T5zXcM+8C7gWiyeAUyDosoC3EWT2X6Qk1\n+vQW\r\n=Ok0Z\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGuFBcbSrjmYDVhEuM9hsMGFOtojc9I2STaJ1oQEvN46AiBJkYugtBNXyLrjXZ+05xo7Nuh2HYVQLonRPwjAnCxz7Q=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190520_1558310696655_0.2619200521888905"},"_hasShrinkwrap":false},"1.6.8-dev.20190521":{"name":"cherow","version":"1.6.8-dev.20190521","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"22e9c111a82cfc3f8e031f1f9c226acc7cfa442a","_id":"cherow@1.6.8-dev.20190521","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-LYKUiUXAvZV+4V4ej5HkJQ86/wo6RrYX9UNW/aguoptycuQWz5lJT16kTChQp1x/vjYcX5tlVE5n3qT9Zz1obQ==","shasum":"56e5d4a1927ab93a54e210c397cf388e81a69c89","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190521.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc40D1CRA9TVsSAnZWagAA5kEP/2c/y5F8A9GEKS55KFC3\n+iZvNVd5cFG6JbO5HZsV003I0iHl+as1jkUXOVgUlKcWpfGsKATUgxOcgPFw\nXEMHzv3LdmocMQKz1WT0Pr+i+cW3SYd39MiN68bctf+U6S+DcXMcZ5D1vAch\nOkNHsoUQtqkLklgPpSUJ3HDx3OwccpHP7HiiQRzWyBkb0rMNGuXNkB5gL4+K\nx+fyHZAo5inar3KafxUNILNOvXBoykCQpvDipGgUYIPHpph0fS9UPV8qIQre\nAGvw8REcbWQ56akKCSjhE00u618aI6fnm1HXoq6z9VLAEnthE9q2B1L2kon9\n++pFGC3yDKCVs94kqqmHqZxKK9t+wx6m+Qwvcw2E+osjb+hS6pICvI15rsTq\nXv9eWNVPwKiyUmK5jgG+d6rD37HRn3q0E0sAaw4lBdgeVJdTV/RZow27bEHr\nXNRuEr11VFH/ttK9Hx0w77S6qtlveArAmervxAMX7k7lXEexsqXGHsv+NAVR\noIbHHbps4aH6DSZo6rQ9+QlyLj2BjCmz5Ce6VkFWB5ELMoci79vB0wpWlmCB\nLZ19oLkBBxiUh2SiMuU6XoB+nujx3AX6ryzbh5Zg61R+4JSpFRfE1kwLmfxD\nYCMZb1gOfUulixXoisOnX35ala/v7MU7yk95DqBigQh4uDQK28STk+xmbUJO\n1DhX\r\n=hZwx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA02QgupLYoWpFfTSRn02dwU/B71NINzyEIQ03viriERAiBJNP4MWk/7dL7qkv/nFCWoQOH+onTblmr14rqt11vKCg=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190521_1558397172817_0.4243002291359299"},"_hasShrinkwrap":false},"1.6.8-dev.20190522":{"name":"cherow","version":"1.6.8-dev.20190522","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"07d34335915a8c7f36c7a0eb7e0d513926d80835","_id":"cherow@1.6.8-dev.20190522","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-IkZruPdzT45t0NDrhcLVnKy5fF1ru7KpfzDgWzN25MBABh+WzN9p3S6amTErJoRIRqMHkO77VTDMgoCLBGQd5g==","shasum":"362a024090d21f6bdb350ab6788f48e0d1c80553","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190522.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc5JItCRA9TVsSAnZWagAA640P/j82QumW8mNih4lyi5V2\nx+lCWCrUlyCFizKK00Esw/+U7d+OUkj7rZzaeeUWTfrHIkXaCA08Jx30XZYG\nU/SCimobuNwftYWxbgXPnwsGwCtOm56XjxM+pcJW6aQeNz5rK4Tl8RQ3F9mO\nAgJLRGwm0Kn+A9FyBErt95SsnL1N8ArHH3jOuYP++nuNRNufHPtLTkr6WZj1\nLuWDm0ArH0Gfil2J5sjwA6nCwKSZ2tffq846wr4oniQ97WyG6PK6I3Al8uLo\nXx0BPv5tdJfnhK1DLb+dFhJGwd5kC5bZr6eubs3cP6dUvbcinB0CoUd9SLOU\nl38Epfit/hgpCRf/JrVVdka9x3XOPMvEfOMsA7KMrx0HFoxb/KbEZXXCVyUH\nkgPgQEG5XHf9cyRixapNnfmyu9XkTp/LMBN4UyaVojYOcDI0YdH6iOjI02Yr\nY+xNOrY7IlyLEI1hXjrEYyWALTnV1PilR1OmSnWuRPgMt3JQYAPoAp38kQw0\nBDHPj2hTCqF2XKXvvyI3aMqu70gqddzIfxyXixQ4Mxpk+TJmyasp3ujmgtnS\niyYLRAPCAHooJobxr/xMUC/CRH9VFZp7evpAgBDVQ6A4bxJwqMTWSK/d21Vm\nMZaA4aZuqBBrDun2Jargs05WrXXFb5DfvZTFoMwA5Qkl4GHe25to+eTWFc1q\nCR3n\r\n=SazK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBo5B8cV+LA50rRT+4gyZW68XLzvcNztW8/fboDv4qhsAiAmq44R9mM54JlYjpcM4w6j9PYErwfx4SHqkjd2NwqqbQ=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190522_1558483500814_0.20418370895257865"},"_hasShrinkwrap":false},"1.6.8-dev.20190523":{"name":"cherow","version":"1.6.8-dev.20190523","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"2ee492699ee217d075e20a0c5f8e6a3eb815f8f8","_id":"cherow@1.6.8-dev.20190523","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-JWlGao/ngihPdeUT6xIJjSKHRDr2kI+kIG0tFevO/nsvjVVPr8pXHsycyZ34eM7MPCRwAJkI5Cx0HBSUyA+E3g==","shasum":"c37b06579725a81701f3d802b9b69ad7f53c4b5d","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190523.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc5eOjCRA9TVsSAnZWagAAk9oP/0jYGgc4pVNiyIuZ5lo/\nVhRwRUY3teyIP0wVtLitEAdcDhlmLQYoDBWXykYsz5oDtJl5pnaduFM5AoK8\nWChqcgGaauqw1cF8eEj6daJxSAJgp9teMPBWDMdGkErRf0f3DeferMsE0iJt\nVj1c3Kd/dnmlF9VfFpsA2Bp3zAdfamJvtu5yNOOye0HzMfwbvKkWfsC5MJlj\nMuxeWa0M2QKI8AqqgOsenMKqrhm3ILfA9cU4cuOcNvAt8xPCB6T0pItdSLSn\n9bVLSwZgEprErHw3lpLETbwbcGP54HK0JGEo+pyNjewu5gO1OW//tPqDfD7a\nMGRcshefPJAnLtjk8PyBIKfM3YLMXbYYvPPH67xPy2AyxSORb7DMNG/B5TKI\n6Kq76KdSd3oXZ/RJL9yLmXGqwbpe4kTf+SiUh/fpN/NxuEwjjxZVFNHTMNR8\n+Yy02FXV3qMuc5fAqdWWqd3fo3eB+wTfwvcWgJmCIj6JambVkQoxMhmajlFX\nT/hTBm4kwSTnz9YeKk8ahE278XUJR8X8kWbhc3QOgGOOL67AKgMBC0A+enS8\n0ep/iWApd0j8sEhWlLxdwAWYSCe3HiZHPLOBUbe9yzAdRYPLJZJ2aTjhQLWJ\nlqQaIp6s/vjD8Tw6sqrNfUtiwe196DncAPtdUTzjTM5p1FKHRZcXfBp+eQIQ\n+uLR\r\n=+1gS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA5P9QJiQTbEGwOVYBjJn4wX5/X4bVDhSBdLvX4Zf+YXAiBcDKiajqbaG/PNpwInkwvGdO890MAAJIlJwpWwWNvmTA=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190523_1558569890414_0.2288027557448178"},"_hasShrinkwrap":false},"1.6.8-dev.20190524":{"name":"cherow","version":"1.6.8-dev.20190524","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"5021a4d9a332af974aed9d930543daf7cbc744ac","_id":"cherow@1.6.8-dev.20190524","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-D1ggEwR7ZuU4txdSFLSktH/om4KyIP6MKR/cFFHe0qCpJt4cmf2TKdkuQplgRipJe41N9f5hJHNzjmH7a7IZXw==","shasum":"c9f9c2fab132f4a973001cd926a02b8ba4c6e0df","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190524.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc5zU9CRA9TVsSAnZWagAANIYP/RRayj6nFzaQf8Al0ism\nVHbqJ1elRFzH4Lp4CQyejOaSPwCf88EYWXY3S2pl65pqo9eAvsyUXpBAg8ap\nNnlDAxc5PQD53MMQ1lKdnqDeqK77Ji6rnaPeQFYMe9S6hURQCTLgzBflwRes\naYkSadJEga1p41AzyLs+Yb4Je0ghd90cz95HGGdLZkb2Wm7ASK11YZ8xSPMT\ndkS/xRYCyk5j+fp/pxof749z91/I3GlRl9pe7wW3Jqkv9MDL4HLRcZwmEdbV\nfaz444WqNIJLpJ1ZamQVLwxmv2rJy5v79ifRiOKXXNOpk25sr5xDLsb/DTGx\nBxm4htJv97yaH5qvwhlHJ4OSCMfVlSI/6FvHS1Pw25Ab8Z/7emWJMkMTfdY+\n5kGH/mucAZD5ZwoXahAHLIHwcLZaNun85QTKZf/wkjQLs+mfoL0/EQKkU4qf\ngY9z2FiNQyzZ4pBex5vhnYL2H/zn0RJzNyUm8vFYcJo3an2HPjmhCsuBJ6ti\nMhGB4iU3mcnGbZ4Tr6OBce7JYIr79tGvd+/FIMEVYlS82QrR3u9kcGviKR9c\n7Dw6oUrdxMxCLBIkerAQMojSI6SkSskubHvZAsDesqEAit8ZOz5y9b5ftRSO\nx/JiT3SmpNrjj6JAiuzM22ccQ1Elg+wou1r7X4LtGydP7EM77Un2FVtAz9Ho\nuJsG\r\n=nb/l\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG1fNgJiAM3g2wQOZfdNGdWthFIG1IV4jbEn2NEs34NCAiBUbXcUKkuUQ2QKnfgyHwCeggXRSAm1K02n1GVq9Y2tWA=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190524_1558656316803_0.06862969431927324"},"_hasShrinkwrap":false},"1.6.8-dev.20190525":{"name":"cherow","version":"1.6.8-dev.20190525","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"2c18878f2f3cfd070f82651cdafa9c47290dd00e","_id":"cherow@1.6.8-dev.20190525","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-j7uvG3QR+/z21ZJJRRJSj1Cljys6Ky7Mo+blpIO9KIS1V8S+qStT2hZVYOczU0zacE+gzZe2vChIpL9uTTrsGg==","shasum":"a135d09b6c194aee854539b3d5cce424dcca21bb","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190525.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc6IaRCRA9TVsSAnZWagAAvIUP/jGfQGFguNBmS8jK8d2K\nkZVs2zBvrdtA5/efxHzpM53tJRmE1C+2W2s2Ga1oPDl3DjY4/k6/SQIrr0xt\naq4yPK063E32m0A9obQlsk/jmOUZd+HrvnUDeK8GPp3Stjjp96GqAMR3bGM3\nwqMtSJE6rC7qOK+F6V9QG6l2Wsd4lRY5uxjMzbu/LKH41Fwjn1F0NsQeEew8\nEN8YroR/sI9nwMluEAMzEVXSV4PcSwTSzePBtl8U/Pw6E8XPZ13eG7XItqPL\nXYyxpn3mGuseslOgRJZ2pYRygC/Pk1/5uMt9p8rxw78GoCUDhfKyx/mhUCPb\nhrhYVu9y5naN7AgkIkygaYMb6AnibaUCqrR8NyvygmkL1Bhd4jKKrHXCAFLr\nM5Hs74v2vzsOW+IE9RUCCIEQBW6O4GYUNd9pH4uPMEGQhNvsc23hCi+a3om6\nJqXw/UCLcjreVweAOrDPTNNSn0oz8eDg0BURcUo/EwLxRCa92wyTlwp0pMs/\nDJg+PjIfg1pDhCOflLq6VP6CKqSTbcQJRzyXYfQasZfFLDjyE9PK/wvCyaA2\na1wMjr1hdwqleLzdlAJuNUeWbE4IhR+6uHS1S1Ne14Vb2dUMbXdeHpERdVya\n3iWziM/NUeOg75pfm8J6pf87/iC6SljKnVh9xl02z0DB+WhmP8GxGqtE9dfo\nO+vf\r\n=xDC/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD5Ob+AS6Saga3kh/RhtAYHX8Djwm1Mba3GEvvlPveYzgIgMxmcz7fyM9ITDwOjBLJhOZF6gXgIWvATCZC6XBec6/c="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190525_1558742669907_0.7929055427451839"},"_hasShrinkwrap":false},"1.6.8-dev.20190526":{"name":"cherow","version":"1.6.8-dev.20190526","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"83d116e71efe1fa096c4774d7d6c623d25823275","_id":"cherow@1.6.8-dev.20190526","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-CGjECJ5pBDNQSqFc7f4jxWaDVrYC8cmLHTtnDNPLbkqIK3Npnctw1LETgXGHv12SkojADs9dNFw2WYsJAmCGKw==","shasum":"889fee1dd286b7777dc5ee24d20a35290f104790","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190526.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc6dhnCRA9TVsSAnZWagAA9K4QAJtmpaly+ChXSurfM9xl\ntTb8YEcwMnVNuosLcqwi6qAL2vtET6yzv1e6TE9snppYbN3lqk+UsYAdV4aM\nE86HirhUGeGHOC+PxA93Q9GETXEmfBxu2K6CpEG1ya7Z4qf6yNhfNOinNTUW\n3/aOaD1vAWIxWywPJNda15iFgcM9yslLedxjsG1rXDadTdYqEh68vsoBpVzq\nBI7FjONRkkBHjNXHJXjy5hCG5biMA6Y8+jR27Owik2lBZxBmHAmxNDyXvoC4\nzXBlik/J/Yi4rkurm/2gVOI/spoGJKCME0dgpsgJis0+L+PznJEVb0a3CLVU\nPXyN1WzA3XXPmkRWsVTND/aUMeZDxr+xlvoBCfmi0TOII0GaPe/ZzHJjDT5q\n9SObbCRS+fOsVg7GKshGM5Sp1VDyyKVdtMM64ybnV0q/xh/LuIYLiE/lREGN\nC3uFgh4hdnYWFblQ9V8PCOg/o22NsXY578cIpcVYgMU2+OLFaePjkiTQkbNt\n8WBQyn/XykHTJQrGVcokIgQIxLvLO2Kok94byg2rHtzMslxNQ+5kHaZYfeIP\nkimn0QJXJHz4fx+SCkRcscbGWNegvuw8V2rQAd4LWKjf6gI+Ss4ac0LHvQlS\ni22mVp6gU8YKOxsv7BPBkOAyWNsx8BXxmGp9hmBzdLGJD348LGAbisROkIt9\nObsI\r\n=/4vs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD3lJ6PU5MELfcx1mT5SZwl6JFCZ7kEBuG+idKPtzP72wIhANJ27Bj0zm3Dz1RqSmGCgD9uVnONsc8+0eNRMw4N5DAe"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190526_1558829157985_0.7075570562429985"},"_hasShrinkwrap":false},"1.6.8-dev.20190527":{"name":"cherow","version":"1.6.8-dev.20190527","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"bd80bfc1b6496ccf6b8b7dc940e5ad814d29737a","_id":"cherow@1.6.8-dev.20190527","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-b8x8NvaHY8Yl2+bdfOlfvWdhJgo4GX2xr+oYpzIRJkfeKnuBwu5nwQquiut9iR+hpKJbmyTMI92/N8LwvbQ+iQ==","shasum":"9b9f35751c9462099b3b4f2265ccad5812467735","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190527.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc6ylvCRA9TVsSAnZWagAAFX8QAJK4ORayjPPU3gHVx3s1\nfMA0ucF3kL96Qgdxd8+Yd2wMKtul6wHdCMnZM7mqn3mAic4xf5HBHQurl2mx\nX3eikc6jiccYYkxAWcUjvqjgB1h6VaLRTuKGA+mx8JYDNebftaGUrIkQvSv4\nbfPNKOa6A6ST1saw63Vm5G74aITAh107e48s43CQAWOu5HAQKAE7sjKgSOyX\nsczyjv62Db9Q5LNdQ1MS0KqLQI0NwI6FMyW+x5tu3x0ysq4CotwUS+6Qh8x1\nnGCYXRgzMRWGiCWihauN1SUk3IjSPUuPCHNf/hhoRXlLInfPiDi9BWtxCA1f\ndeYQm7+TcPOLOUnX8/A/LzbVjtZU78uPGrwM4lLS5Fvznh4syQ1ALMD2EiW4\nNg5g/UjkB3gobjSno3mhSG2lJpgQfybUI3ZzN/dn8oVPSZXii7jfWMFqti06\n3pBCHVbl5q23mLbmPtVXkmbOtVG8xBY47xCEDbrAykxV+uY+Ia3hcHiI3ITP\nl9DvuLo6/vWj4DvJUw3bqbKpU1G0Xq9CSG0eC9Jikk/H+wshqcl8hOvS4nQU\nD4qFUqIKxcCMwRib2y5hjbNclkDg3X75fHstm9ieAm/ttPCYehNVWZe2LiSk\n5NiIkwMjo9I9enVxUKn4HzdJDVOCjcQPGTwRwmWN1zq3nbMSGA2SRAdVvXDS\nLsCj\r\n=xvLx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA74zcj/RjRgsSluVVfTcq/t9EQD1l0KgkoZVHIIwFUUAiEA/JVG8WaMkq+Y1Pz8fNL04NtwPgf5n2Kd8w/qQLYQPGQ="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190527_1558915438655_0.14768539902853295"},"_hasShrinkwrap":false},"1.6.8-dev.20190528":{"name":"cherow","version":"1.6.8-dev.20190528","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"ab878fbb4153edc6c7ed5d99a4df497545074edb","_id":"cherow@1.6.8-dev.20190528","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-AtrvfIyKsx30RT5Q6U1maJ1lsKnUy4ZPvrBbKCXM/mVtIE5wsnNvhaEueQaPYlf93smF9MwLCAHekPFnutRwTg==","shasum":"3ff7f80908d8177ea856eb0bc51021821e90b800","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190528.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc7Hv2CRA9TVsSAnZWagAARi8P/3Q6ezzooXWHpQxwjjk5\nPeJEvaGqc1AhEsyYutgJeV/0FyKtHaN1kS7gbXRj1Gc3cZOPMlmjFNsCKX7J\nwbLsabxP6MCUwEQkXQ/ugMCZUuw/cn1kqA+NcLJuKXljFiRPo8LnXpfxJvfr\nvvJxEtKzC9Hs4Laa0Zr4msvQVNgMQsCSQNm03I3+7Y3v8A6XJunya8rCNKYK\n/7fFbjvkrzu0D4MguS7Uy4qlr05dFOuqf/553wqe+f2iEFnBJqDvHFPb9ATT\ndF0w85rIDwtkz2zigmA9GpNQ35XodbPNVj+eFkA7HQFGZ6jaJ272WzdnK8wc\nfSN+NAKfK0M0jS3mGH2yJi/rRoFWRBBmRf4bo5jbf8RB8tqCIbNx+t2GWR3Y\n4eZa8xbtuKUkH+LTabRP9h/50I5hUjDSWrBj7HuxffqPoF1umIDOyoH/N+Og\n6KHCJghbo22zpDeVHN63r9VNGXLIL17ZgKKIhhLEBHq3i4ToI9V4GmmPMUKo\nL7Z9ve2RNUH2/8BNtv9C0dh2bVZRWGDRdo9Ki6MhdpebURdgayxBm6O2C71O\nsEe+BcUfa+vbMEp8nND7XXq9vWeEqeEB/RB7NfiNEIH2IPDwyUQpE5E/Q8su\nxMPx5AEf0Ay7dNo85VTCYJph4OAGD6fsFjCkPRx1NkwDoRXxB2/sRbtPG1HX\nOpfJ\r\n=avn/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFZCja+2LB02HeB51jGAfej0543K5koq5AzffpZWgdSHAiEA9udhPnKGlFxe0lTvsD6myiJpYIGVfipumb0FDlKwc1g="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190528_1559002102214_0.18383502070474855"},"_hasShrinkwrap":false},"1.6.8-dev.20190529":{"name":"cherow","version":"1.6.8-dev.20190529","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"9b86bf56bb4f4c8e7c0243e173c6fe7a9a08b419","_id":"cherow@1.6.8-dev.20190529","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-7nvC3BKtjGDc7psIRiHy/B3D/DyLU6FH+crr1VjqCOzFZdul2TJd0p3SyWZP7cwRXy37ub7Qn6epH+YUGXtvVg==","shasum":"ee215e42c2ef23ce8791a817965541d9b08206d7","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190529.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc7cykCRA9TVsSAnZWagAAzT0P/0HP6NN3JcMS+N0Crpo4\nh2EqDmGm46OZRWCDC0rNO1cFjcNScwsL3KwmqSqnMnR2AdqQEq19ucIiqM5Y\nEJEeMycj9chR9ERUKth5poVkC/tghAC0mUF7qxCwv5LCyEGLew6zOTh4U10t\nk6nICIYSBJWGoWkVROqKM/5N6KbeBhyByW7HtEognKWwSXdx4IBH6NVBgBQv\nolfymIGRbkmvAmkSzwQMBoASumR97z9r96BSY103mC1E15OIAByeKjS6mBtr\n+uFGWXUrUk5RB0UKkTQ1Y5xn8vDEm+jc3OUvjd9fsgMrHsm4ELraD6EtKAgt\n8hf5VX5qar1EOfK7LxDKN1+loPL3yn45vbaoMG/oGVV3MtCwzbTGNUlgAPeZ\nG7qonFRRH5lGzNUaUEp20gguFOZ6bTs8uwwzu3juTxQzfre7oMNzOMeYXc2X\nTISIY+ri+nZ1Z/vHJYHsCBL/0CWpml+gunE7Myd9/yyiDAStNDR/xg1CFkyH\nd1wRyEErmH+5sUYJr22jlrBSaNQj8nRfJp2SKyJ9iV6tvRThxbfReLg3mGaf\n8K7TT43B4jdug6ceKEiXTWbUt2+nwLTjAm1/SrQSvf+rqa1rKNUjEYgwKHg8\nqX5ThTkkbXr8tXFpPZHZK+Gx2Yqx+I9nDBTc3L210CHfhG2IHW+QC1W9NP9Y\nO112\r\n=ther\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGAzqtka2NIl5T4UtmwCICMjbF/KSuTYVAenM4wN1qvSAiEAoiUJv4KsGWE/CE3G5V4b1NG4JIFrTXV39tFGJQXlQrA="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190529_1559088291243_0.28229111910728233"},"_hasShrinkwrap":false},"1.6.8-dev.20190530":{"name":"cherow","version":"1.6.8-dev.20190530","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"98c96833418db56395f7c82605ad27b280f8fa46","_id":"cherow@1.6.8-dev.20190530","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-FHc7XBFdJbKdPtSayxP/0mKOS/DMrhyr0Za2JFHf2geM+kOwL2BrWeEfMuKqS6svr6ZLfJuRnfBIi7y0fn6AsA==","shasum":"cf58f15b75ee7f0d5fe15a66160dcfefcc8343df","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190530.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc7x4KCRA9TVsSAnZWagAAipcP/3aTxXVU/tBuVWNsbotZ\nyOsgKHFeuzvT25g7pjOJKv6s1qhHAs9WoF/he04xB2z7JfcG++oLfaJ+pE5/\nDDUxYB+9tb4tYcEODun3sS8TWM6BoMcXWBil0+shPt+RifH7M7zjHdzZ2B3l\ngfJPIadi5gF8yI4RJSt3avN4JjKK0mrvST91Jezds4jt92/yi3HTxrXdItYo\nFoUZrzrujvWtUbuJ3l/22iRD60xqh6am0vh76cBYNt4xCuVkO0oqRIE8gLCj\nko4dimf6RzrQwLwJuqPLTQ4dLL5zIG3gbFDUQMwiylhVYJKbYhO2uN7P+xHw\nD39q4d8ZmBJ2OBregx2cyQEBsn5x4g5fKCra5HN8xf8Z4KcMx9lPvaw1DHjB\nhOVIb8utkaRJqfoY3UTli1y46WkWcWmr2O2CrDoyGEzQIQbNOIsvOqHLnJuF\nMNfwYhEFYMjRG/N4Z4jPvN4jV2tauqlhqjllvZgTmdSbpAT6f0VuMHVCwaHa\nixYW99PNnyY1r630ZX4NfEVCxxreeSpfN9Di3yjCRbxwvdWLqRsj56ZMWA6c\njODeAuklxicXlYiFSoPMMzfFYxsn3lmV2/bDkgHBvfBmzitH9YkXzdwOFsab\n61HLSd+xQkQpHfiDX1AnMmlUDZ6cc80WY+5EPZjyGvQenKtdPSh6hJlFHiOT\nNQMx\r\n=Q+LR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCVG01PX7nWH3CQz82sLcdtOnBwaTcWEASnEf+h5rWekAIhAMcPC5CED/rmXhqXeypggaxxlzfQnl0wr2JmhsXjiDBO"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190530_1559174665497_0.49810106331233284"},"_hasShrinkwrap":false},"1.6.8-dev.20190531":{"name":"cherow","version":"1.6.8-dev.20190531","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"d4344e3d6f3e66dce33b806837b0d54a6828bcd7","_id":"cherow@1.6.8-dev.20190531","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-paJMI1ISOSSF0qUzYk+J7EdBTdLWqRlt5PJZyYRP3kPq+Hu8HBvTktjGkrgxIVAefd9sLV8qqh1rtA4zrm4AiQ==","shasum":"3684d556ee4faad070fa3b123799b2c417a6b62a","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190531.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc8G9iCRA9TVsSAnZWagAAxrgP/jqDt8i1uLJe/iTDZ28x\nmFlzTDgVEci4Ib7ZuxWvn24uVGb2IjceK7yhD0Ui8nCQnNO3KPiroCXfs/DW\nUPgp5RbGDdFJXljRdSoEMsTvyZnvkPHjZj1MHkXTMLSjVisjy7iDnpID6wDe\nmLOUVi/dszqxYCdgm+6P7Uy/kS1Zi0V1XgxFtr5O2jM75DrKPAGNx0UGoQBp\n5jqOU+vlkX8792mdJlyanVpXLI4v32NMVBKTRqJ0XUJ09lYzuEUQiikTbs1r\nAJgOuujr7eKNZZPAQT9k/iwHiky6grlNPCNEG6dxuXhY++qX98QzEi8oEc+P\nV/3iEv9Bp6/RWDrL9X0iAUWY1cuLRVwlKoCrLQeeHVrR6E890fVM3Pdd6Yfu\ncx4SBwyb3WQHQfl/0SP76EnPyit6mfvL7WMhNavHMyBzbTS55QzfsnI6/z8v\nlxbZAvi78oTKhJ9lf7j4w3Ls5jGPNmy7HYRZUloYfcVddN6WlBg/fVPSXzW2\nkA+GDLyNkBa+NC0AdDOThgzcgLeL5Bn6o+gnrh/Tq0mBx43HFfOvu35ElqCY\nqQpLBhdGBsln9MThUsZLtd6MuN4PIDSNpL+4y+QHtCbaFAtfiiOOC55/vchu\nSaz7dmcWIt2M05lvCR8TWIUQkxy8jxTfm9hfBy0lfIU1lI4Vy3CO6mf0C/Qt\npzFe\r\n=qE96\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDZXIjX+KzXBSPSoVfjDqNDwSF2Kall2nkBc8hbH82mcQIhAIdAoZMKQdq6fw0fSZJ7KkR2H9hlBS9+kX1SY1d2fLd8"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190531_1559261025387_0.5437622301196536"},"_hasShrinkwrap":false},"1.6.8-dev.20190601":{"name":"cherow","version":"1.6.8-dev.20190601","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"cb93985d80ce70acb4e0af748ff9c30500a7425f","_id":"cherow@1.6.8-dev.20190601","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-vPbUDuj5nRLVPxzZnE1zr0CV5yXiazPVS5iK8BmwKt/o7/SDqql2M7mUEG2dzM7KSqIJLDro4V0yFpsMZ0R79Q==","shasum":"91ad5cbdd4defff6ace35d53a3e7be98c38a1329","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190601.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc8cD5CRA9TVsSAnZWagAAVIsP/2/4YrVf2GwSYpKdCfxo\nokoz3b4wLf+f2Y6GfX1JB4GazzpR0at5W5i4qiX4r3w85R3qkPjrWVGkAifG\nQREyr+J5fPMzdgOxJoTIDaaGcuI8dbCphfi2gatO3T5ySHMESE9yovOadNGi\noWFzntnb8Q5XVN62g3EZGPpMo52FswhFGGlsTdoEobDmQQCY59EyjVdnbYxE\n6/3BVfALTirdrASXWaWUsBv7RRSUFYu37prc5LcWecAYZHGk6nCGzG2+w4sH\ndGO0eH60WcgAPqgDB3ruCeU3wUrk5fhrZVhoFjWWYACqcQ9MnTdAV/Yz6Aip\nsRGRBmWwb9BaIGLCmI5EJVr1zjZCXYcR06bCTktn/dLRGtGdRcXnbEyPj8fV\nxt/pm/SnhUfK2mM3Hgw9QJCFhp0bkVii5jc6Ilbr0EGik1peXZQE9EHeb9IO\nNmTEeeEvX/zRyTkrWLdURURxHlV+Tz9ppwEtz/YuACuwO66pfuYWBnBP2UaN\n6B0a9E6zZaa/BV9o++pQhYaBbJ+5zxOkVdwCnBEtWQUjmjnl1cq5dcttQUPr\nQG8lspqkyhDpQO4qZDW248KqMbcycuay4CYmaLa89ZwY2735L6PZW0aKhr8p\nnpxShYlv7E95hMasFBz7Qp0umflhXsoyxfGwhIfakAxqsta2Nygn/SqR+58B\nwXYT\r\n=aInR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDHh1BcYS569R4fI1OfLiIqf5/SNcQpcKXiST/azuhldQIgIP7pI4Ub5lmldZ7Glr4TyWVYx3pFe0XdYZ28HL9s3LU="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190601_1559347448133_0.7334412189045414"},"_hasShrinkwrap":false},"1.6.8-dev.20190602":{"name":"cherow","version":"1.6.8-dev.20190602","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"a9e6b4206f472396ac53a018c7ecfa4189e17148","_id":"cherow@1.6.8-dev.20190602","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-WXNRUjuPQzmxi/FQoPrnO9QlIOGXOBVypRH6I6/U06tjvjnJH2MtlfYD+4QI1rDCr05RGkR+owjs2GECnfRnVA==","shasum":"ae2d83941ca71a718b0ad7a730cb4f2d1df7601a","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190602.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc8xKWCRA9TVsSAnZWagAAO2YP/0HFiSloSs13rRiuh0GQ\nsuZCj61xRpYjdv4c7pMsipk8Xg3bbj0KFunJoP5wobhryUigZ2AMvdKBOyxR\nK4t3MlWILUf1gmL8H8tnU2+JX7Iu42lwokHyxSjO361+ocoDjBRosQdk99MO\n5YsIINvCWJpht2AG6Okt1yrhOHByw7EcXOBK9O3I4mRnEZ93E8NuqpY3V6hk\nW1vYmx6aTeMhHyr7mgCxcDyICTYvzqdWrAFQy4ZDOosJfG9R6bAzbeNDnVDo\n2/11FYJwr3295Te9b7UTED0TKjxWIDPLEuQjJzgczdbPmev7HkO9E4XDUg7O\nzyK4aZXX2gGrLSONs11IehuNKJpuOAJAK8+9GJk1Ffjd3S4bBzCZPuZ8KtoB\nqvm7xSIGBngO14sN2C17dmXmx1AG1nsGQ7NGc6hD3Yppyd/2TtFDh0ltA3+L\n4t3BMs5jK9N15yfvbSl38VrkJxKxkyAbBSG0FeWHr6FXaTawTcDTjN9XqLIJ\nZf+HRSVq8i2HQ0srWxKAAoOKFp4WCbCmnEihLrrFd5x0TcEvQDVhy/31YgiF\nFbzin6ldkrCJM4U7PoHNDXykNQLkcCuTBn+Av7w1w/Emtdg5gE//XnSjWlOv\nEpoOdCZcu5oHIa2vuxRxpg1J79OWI3W8V0hweudls4/EmBQgGPdXz9ulR9uD\nRm6i\r\n=qMem\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDOjMg7090vGhmGK4lMnOil9AqsbZ23Tis9m/QSEHFamAIhAIqMDgWIR8CgYeqIr8NKPuNW5kby+zIcf/SNWQFqzmHt"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190602_1559433878212_0.17508979878583997"},"_hasShrinkwrap":false},"1.6.8-dev.20190603":{"name":"cherow","version":"1.6.8-dev.20190603","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"d402f69b6684bd90a7cbbe295645cb1a6e8e7a5f","_id":"cherow@1.6.8-dev.20190603","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-QypkVFrF0LVw09fAkumMT8XcgCkVC/WxHp2q7vEXe5R0ODX9wFJb0iTe4mUpcMs6wjsScJdiUbfsUbZryq9aow==","shasum":"83f752ebc133ba62142242239ebacb36bc18705d","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190603.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc9GPqCRA9TVsSAnZWagAAxBIP/RbZMsYxrOGzd6Ej1UZg\nbA6q21ZEtqHj0Bmwx7gnFpWQYSatBCnDsbskNhrscTp015vBW9R7GB3A8XHM\nmcjHwNYnf+9f+w+MTvQfB8p3qbg6T27U7gnUWy2aKPXR4fb+ydQ/Fu7P7n5K\nzCjmAWPIPi5yM0WLDtIckcx68nunqgd4rhe+lg4Ejj5Ri3KyGqRAIxdWKn7X\nYjJSZ24rERr6DLydgg7uOkEe8WZ/0z7ipDY8JaxvZS14J2bM4C7WR/D+UNL2\noWA4xGg9iDXJJ43e6OebI2KihJMZxFT2WanAfOfX6+Ew5rq6VHhQQhdli2fk\nV5o0k0uTTKZg73t8CXVlSzj9pqLycZZ9txJRFEZVHva/UsUYx4HKImjZiwql\nWY5BOV8b+eG98Zotytqgg+H1ddZiBbZtD4cKdvvTNA7pWegBVNsGYl/Veqg2\nFTwqRuFFU5SY4PtO0diDLq7nBz09aRksnchxOOI44RSoTnH8Ptb2e0YWUGLc\nZdk4kFMlcPM+jFGbv/Cb0l0CzPohk/8hqXM9i4n+Jt65MbezYU14lihRAqGk\nLNqJMUXip0mGpeqzCePXXpr5NwkEOJoVhvW0lOVX0FRWhQguqAxo4EEFVHuC\nCq9u9IEHl/epSWEVqsnWrnnrDZ2Hm+3W9NLcVFQSnlnRIsDy4gzzwYqlbIyA\nQnf2\r\n=OVvD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCNO5ZBfeCLafLrOQkMR/r0ChtgKcxsfdWICJHvx+teygIhANGNUaFPCIiCEv/9Jrs82cc3d7daZCmIE5dj93d+0sIJ"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190603_1559520233579_0.8603569540041309"},"_hasShrinkwrap":false},"1.6.8-dev.20190604":{"name":"cherow","version":"1.6.8-dev.20190604","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"05d0b984226845723762e0ac46a35eb7bbd174b1","_id":"cherow@1.6.8-dev.20190604","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-wvH4OMlTKRVr8WtQriesldNojfdMJtRMYKg00Botuvgyei9gG+jnnqLcojAo3j2KuYnfh8ngibZowtRQrmtTOA==","shasum":"d88e8543d65d9493f15a8833c1b593374f86b368","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190604.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc9bV8CRA9TVsSAnZWagAA+EQP/RnK+8D1p84bltejki7E\n5O4xt8F9JC7MKRDt8dT0kpNwVWQ4y+3vbtq6Xd6SdE7jU3HoGKFyAlf2whib\nO3fsxuE8qd5dhWBIThe8sn+MhswvrI2wKqU318yaW0EqKVhusfry91l3aMy4\nI3Ow9kk00bB4cjsHM8GosMvJwuMT1fezZw6TFyA9LlpFqZJax5kkJl8KYYWI\n8d+x0PieZIhrXUiWI+dyjK0rrxP++HqVfpDt/Rl6BhGc2gKimkZTcdUhkQbU\nJ9nm4nXQPeyAWN7pl8wb17cN+Aq3YHUjKZlzfRTy5CPwg0jDSFphmRGOzvC5\nOqZ7Zlxiwc2b0YazHsPJ9z+ecsU/7Dygnv6BA9QrlBGuEM9gYb1+VkydRsOd\n4zoZFbq5FZm5jeB6P6nu0F5bG9JUepTskpPOKxdzp+Q1EUYumNd4OZ04oq7Z\ncb8TlGHPmMFyEqqmwUL8Te3IdZXFO16zAD74dRLuAblgHWyQPaD+rwuzI7PI\nxUyuPDKkZ0iHRtnRbwUQEHB+ETZi0JmsJpn2uDg7jrmy3RD2FxyIxHcDZKRZ\nZrAqxeDWDnLI7gajUd1FgEZESSRV7SyRKiRl2QQdmrRczYd646ZO/zgisjV7\nyyVabjnIuizIYnvBr4WN14MHDWYcvNJ70RVCnvK1xVxcuXKRJB31NPvn6+V3\nn+JV\r\n=XNed\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD7g7bogngDPNhbDoQyZnNTNfiqqrAH6WY5kspFYckecQIhAIkUJulePjEo8LUP0cNd70qUo7clvAaMCp05wQ5V2yiZ"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190604_1559606651704_0.8553118664339516"},"_hasShrinkwrap":false},"1.6.8-dev.20190605":{"name":"cherow","version":"1.6.8-dev.20190605","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"a7f334c98026be6bedf3ea1314af8897355dc359","_id":"cherow@1.6.8-dev.20190605","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-3so8TZZvtYhTArn3tN5vIWUsz1BL8TkcCaVeV59CA4ssuxuhO0MS/SvECJ1tC4oqbs/Yxe3+dbEia0Rcn0HO7A==","shasum":"b0b8c8208225bb513c660a1e702d76c027b2eb2b","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190605.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc9wctCRA9TVsSAnZWagAAXWUP/jMSGeSwZD2ayE+561XO\nAt6ezHz1K44CcO7IsjM1KSxamHY5sHO8UaXkosYXFSBqCXy8QNZNeUmgHW7n\nm5tF8ZI/Nmxmrfoi3Tp6dyK5Rjf3d1KUb4WTGjkyxDnW9YRzXCnzGEsl3hLu\niJAF3A8A4iZubkhj9r8aYcoRJ/6xkkZo1V7yAsgoxB+ogbBZOl1Tqp0r8i7s\n01PMfdpuEDlfCX5PkmYW9vn7Z0t9IN5CzYKqneeWyYbwWcYajm1Xne3Mx912\nnYnCXvxZAwd/vues+RrsxxoqHtpdOrd3QZm7BJR337QK9EL4UYuXqHwywIyn\nVqCFSu0h/LDAEGO14de4cvgKzjT+Ajs68kBNLQyNNm4lYwlKpFBec0EQLrsL\n8LyB4ZrzvlfRiL87uCoedaOEyvqoFJWT+SmaLQxyweCHghkQT3gVI43rTacB\nFjIHOmi7PumnqDDH08RZvpX48b5Kdb2dllsUbF7lOzLGk2aiDb7lIin/h4hH\n+21mY/boXseEYlvHlCAz2Akg+pB9OlWXtxbkHmtfLOT8Os9+jfJZRrtd9/Mr\nSUMonbVRJchL0Uy7d4VcVyj3H9z0n4yTg7ysWkV7jh26K7vE/F0cIiC9qgd3\nXC1B8LqsHYew7Gttk5FubupYs2GMaaOvRBi6sEFXpAmhOLc3OvVUKPf3Yz7v\ns0kP\r\n=ZARI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCwKvQsG7fzMSNeic1JZgpExDNaTA29L6j3GAoGb+ECawIhAI+VnpN6Iblj/IEMvBe7VbjKBfz4hLQRboWUKJazhpCd"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190605_1559693100558_0.9128041283554102"},"_hasShrinkwrap":false},"1.6.8-dev.20190606":{"name":"cherow","version":"1.6.8-dev.20190606","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"f7a30f7437f4cfe3ebed0e923a41e545f774101a","_id":"cherow@1.6.8-dev.20190606","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-RrA+bggIJYPLRA9AYH5Dpq7BN9RauJNnRfH0Lt6TXmE7E0V75YyYUN8se6XjV2VBhawEaCNgCrs+e5oIoi7ygQ==","shasum":"afa2f3914d93c3232c182397be7544e6c6894fb1","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190606.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc+FjfCRA9TVsSAnZWagAAL/0P/iMvHmUhe3yDp6eqVIgv\nnrbJuoKbMPi3jnyweIi7v6yoL03qeGfWsy9RJd7C2+Y44XQ1W5pw94wwPt3Z\ngWUaKMXd0naB+XXl9bwbIAN+XzaY0baP5dWjwQMLUx83inrmXd9yiuyAq5Ly\ntH6FpM5QAc2yW2XpNT6VqMf+gR4WeRg81B2lZwgokO9PdAedO9q7MQNwbVSC\n9JMfS0V4TbAt6j0lmRsGyGl1Khg794GZxYJIa+8JWrrkNw0n1bQbdh5Olrk+\nC9eh634fVtHaAeB7Z3psvX8aB+VG4txx+QjpuLCEEqX9x8ohHx9DTzYAz4Hi\nd0gzutDPo2uSQTq6sb3CFk2iw6uChHmPmpvueoYMLwbwKuJqxjpZwuF1b++W\nLow64raanT7yTttVWI9vfIZAJ8NJssVtV2GsOdkONnYg8BsMQgZkeP7J2wxi\nU+MSKAUzFrF6Zmu1dUj/k1QT6KRIuUvuh3Dm2b+8R6egbha/VJgrG/399iF8\nz/aiswW4NwmzNQwbYA7UuDfJzLfNf+6un9CqTWBSA1ioEbYv423SfdmtxJbF\nAq0sjBWXKzXcYTyfT1lqsWciUlbgpoXM/oUgcqNXWJNHcuagSbN0yjU51tfv\nvxyfEq21Zq+dNe+Jr5IIjtUSpSKAvi37mF0C268BJn1YOr1MAaNuNwmLV8iz\nkRJv\r\n=ztTA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCDJIx0+1BOLhaxIcsnx2K/gXNMfdPMU8hPtfC4+Qsw3QIhALLsESDiv9oqfOSPiS9X2QBWIWk6Y10eVedEv19BIOjm"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190606_1559779550692_0.985145075958745"},"_hasShrinkwrap":false},"1.6.8-dev.20190607":{"name":"cherow","version":"1.6.8-dev.20190607","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"71ffd77c7005de98afafba14f0149157d3f0d0a1","_id":"cherow@1.6.8-dev.20190607","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-aeVBMofJxcCWcKxIw57a1B6ddugbvTs4YehjjeeGniWQs0G5uvZR8haKwtd4quMxOweF8TAFAI0IKHU1ka7rpA==","shasum":"658f875ee0c58453f8b7fb8e22f78a61c2828a8a","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190607.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc+apOCRA9TVsSAnZWagAA8O8P+wRJFVQKoaS1tJ6OyO3N\niOnXlFG/vcuLYK5wCQVLKAb5qWjqN+1CkuwkYeMcMMw0Cd8usjIbKSt6Tj3C\nzX/XHS0WfaU0MPkur5HiOKMY4gDtHNNxkhlCJL5Y2uCtCI4D5LnDal+SWPc3\nJlpXTVAMANGMGlOLtnTxMLbgC21sMM/H5tnIrLtwJnAVLu29yAEVdmed4Q0I\nTrXAgfazOIHrShyfgZ03ks+nbhi21fYlkQPj9r4OCIMedHGKfBDzU3P06k1k\nKveQ+4e53GBS+aTsYpgDRA2wBsJueQhJ6hNzcNH75pGUIFpIokv9271PFonu\nDNSWjs7FYyeK9jv0YdkEFwPrj208wO0PxrTRlOu9hGPdfdATVkzWCOJkA3KY\nT1Wqc6sIKINFDFEa2qXCLdSK6px019i9enRIQHFQqwQ9yGNHDhV/lv43UndZ\nXav6S3B9fPhb3RvIXOlxQpkrZaa6GpkEW4xZckfHOB9v+1hGSYrqnnE47KYI\nyCMSmvIqVbG1IyI/8M3lXgklLrdVd2Ff2OB50RsZ4qXbCee76So+stpMnZ7e\nUKWWHmMZkFH3tZ62MOnZt5nESp2PTb0Afz3FjHkMO8Dfcyy8RXiFr7cUCsjW\nwNMPguUlv9OGmVomlRp4enTZH40wn4kOFx34sULqj4h57WDYVqozqbcgjC5y\naJ1k\r\n=DOE8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC/1pc/eBm2wHFmq1n06l4cYySCqb1lyd1mxGTuyodMFAIgASWeP1CwBPo9IxwakKLis+D/Zar2X5pFvjYTFmxetK0="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190607_1559865933290_0.06046146190111079"},"_hasShrinkwrap":false},"1.6.8-dev.20190608":{"name":"cherow","version":"1.6.8-dev.20190608","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"6c55c3979189f382b21312b003dadd91e3b0eb18","_id":"cherow@1.6.8-dev.20190608","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-RVc6gcVexuQUmtSJPaKxNAeJZKBV1tDkMPGK/sOTlRQ+vE0u8VCPkPVsl14lwSKFj4xBJu5Gu/LU9ljKJKuytA==","shasum":"cd624e951f1ea92e7d0359c1dfd3e6e164827a4d","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190608.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc+vugCRA9TVsSAnZWagAAY2UP/19c40AY3Q/2L0hZtzJd\n9cvNFumfU3dyfwUzh4zqzHGjEclcB+vCuyjAyjsBekxZppDOby+VXbpGfV1j\nNeiKt+hoP5UEomJb+rRxWkjGgds5G6C3BtA/uTdWXip/T+RY27/gryJOAdIr\nCTJ0dKuPBUyrFBEXPH+jscXHewfZr+pMDwXaNumVcNN1TYjrPp8e6+qIh8ex\n4cXvpXzvwUoQKRpQCil30SOU6TbxHg6u/t3RtUIa70+UtclBW1YfqoUfRO2q\nfKU/mSV6vSJtrjklWsgtAKjGrrcYmyeqvPePxsth6N//z9Ylxz0kfHrER/F6\niYiQKCH7/vdwAssYtxDgj1AlOfHPCy8zEpW4RR8Zgr39zCKTxUO6NiCoWu+9\nYhKAnZSG9utWBAAulw0EbmALJSjh8324mrE2G1tk9p/S6kkcvyJLpAu4/v30\nInHBbxnL2w7WEiUdLrHPstS3nuS8uHEcygz0S3uuxq48rdubOezsJi4f4gIN\nKHNJ1UD37n7hZj85/UoG86y82rfgUiyYAuqyjejrJGoxWOFBbMGi3t0S7kQC\nX54K1KGY0Exuz7OskWVnu5G3xn6Bp7s+UssWz9AMppzvxY4PoLXSmks+07+d\n9GuEKBKPZ3MvFmIMWhyIXCq9aikHIrFhdjIzJlcz9/tUFQiwRSPRuW/WOXhk\nPCFK\r\n=LMQb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGQpYI/kSUO5eoxiw+F+NuPWM/iN+Zgfk4gpOstUzw69AiBwdfSys5sdUAHwrnI5dx3A6BRZu5FEHUY+0M7sSy2swA=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190608_1559952287815_0.9670373534591166"},"_hasShrinkwrap":false},"1.6.8-dev.20190609":{"name":"cherow","version":"1.6.8-dev.20190609","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"a44d26dd56b480cf207b2350526c40d9bd5b1682","_id":"cherow@1.6.8-dev.20190609","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-1CWpRrT11bAb/q1zt5/ev9k5JhJ8S1vwFYRld3u/bFZaLKw0pokwwyYROVKW84hA+KaUfKEnCoZGnk26D2VcOg==","shasum":"73b112b915036b14774e0bed0a997b99d6978f33","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190609.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc/E8yCRA9TVsSAnZWagAAcCEP/RGXTqs04oKen4uNMUMe\nrJXiig5cnjyWLpyG/za68KZCtbOX7BlKYliMthmyIBGDQP8S2QBC5L3xxBXD\nvCPC1J/Qy8CN1CpkA2ablVSjViEh9aJsDBg5J9VlyDo53/avJz7zGEw1wtRl\nzb71DToz0cJNk5WVWPeiRzy5xAJ1wO94JrR5GL2HvGnNG/dvdmUBXMXkNhth\nUW3rQZkTx5SeRrMplDPwujB16YETeaThUMou3QQLvvo7ThowDOJeT+ddPHoY\nDskiTt/11ZEV+NXTrCyRK0PYs1YDpeo27yGiC55+z57ORyZj43cMHrDnMfJs\nRFx2203W3kSZYMRoehMesf22+xATKfxVpb54GarUmkyyUQ1tMwFoUBN5XgnW\nSpnUmLRpfMQThutJdLmABTvy33wszHI1WAAjCHrY0PrEi4xSesXrMt0UPg5J\nqN9z07BGuylYECz8H3GhF+CGn7E1SLugVmh7fRoIrBfXc+Ynx1dDpCqtAzmI\n3TzodLvR3riWjP3y1wgDI1Dl996Wrhxim3mgcc2pWG9RhTfZwXGU/f2ivC1U\nVZN0esTQDue4JQoDloAtfr6uuqf9dS3j1uf0koZv6ZvWcrUPkTYwPthnuEvl\n2h/Jj+YQyLkJBMAXbPTBh+s9Llhc+ipgs7CYO9B9VkoGVjbu9Nq7TLyn60jD\nQf1u\r\n=AZud\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGxZevr0LPK69X+mb7x+yxWie0H6R1lP8ZB9zytNtjznAiEAykN14eGutdNGCt4OU99cguZQqWk2Y10tFGCfFwh1kr0="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190609_1560039217857_0.2714229869143092"},"_hasShrinkwrap":false},"1.6.8-dev.20190610":{"name":"cherow","version":"1.6.8-dev.20190610","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"5e92481b56b92376690ecaddeb775785f330c2fe","_id":"cherow@1.6.8-dev.20190610","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-hvTcRFaP2PuxKWfWvnWHf0AeoKjqSvGofiCZcq1O1fvNGOVsVMXG9wAymGUkWHgJlawDOXZ/yJqGmsl+JkbPow==","shasum":"23e829b877f363fe6d47dff321b0e04d1b1c6184","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190610.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc/Z5jCRA9TVsSAnZWagAAFj4QAIg8jI0indU8arYOfDjb\nLx93TWzUsZN9xitFcckgp/BDX+mUTMnUBs2xtPaNZrmzr4AU7KawNTclqPiZ\nsoCFuy7gIIewOLUPym1pfwJdYhVtK572n5xfmUzrM80hyo/49T21yfVO7HGm\nu6f/uZsI+yZcf0IM5+VkHJq8sQCEJN9GNgXNB3pM07hG4E0imRakNTKsJfpE\nB2Mv7aucldiaVDDpYy4mn3lA8YDkXQBAPi1K61y7AZy86nO0KIngfsCaxCvq\nnZTNH3RfUEkcEmSByReYXYD2FDRqXl1dUzNyKbaIEz7gH8FjLXAbGwbrY/hB\nbtCVuIjmGMZK2+9meaONpA3HVd9kZp83YzOY+9tCG+XG+JqbGoOcyJLKuNfP\nufHPmfadkPG5SkYivzZbCLZz8Hifbz2Qm9oiZR0g7XH6VV8Or0SGXoBWeYwP\necpkaiTZSZ+prk/bbxstjVVQMRFKbBb6W68x8J2TwVemNviJBeHsFLc1VhBZ\n3KFx5O3jf1Z1KPEc6IVrS9TCOKGYlj2g5zmY25rIt5XA5terTy9b4r1+kNio\nmxiE/94/GNuVhrlwM3y2M05LSgMKRoCAwoW7aBmBCCk9VX0qbSG1FE/8wlS6\na3TuLQQwRYb0T2XdGCift6OuSKsFueQPDhKpxbtWGKkhZV/WuPrWJvfGIhW6\nLbdf\r\n=FsYW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAXme7C/fyeiPy2z2XGGR5qaLdaPhevCVW5cxKgA7PsXAiA1HXxOobv2QZ+CUNsu9ytZRMGId2O9SJyRtQ+Znls+0Q=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190610_1560125027090_0.1740801828316063"},"_hasShrinkwrap":false},"1.6.8-dev.20190611":{"name":"cherow","version":"1.6.8-dev.20190611","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"5c92e5f4f392671db25fff4d8a4483158c6c0639","_id":"cherow@1.6.8-dev.20190611","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-V/7LSW9T5XuwKr87zbGXnMOltgNa2U4y3Pn8uOTJfrEX8fkj0h2BTZ8h3/l9vWOA2pot3F3/9d5HJl2KNYa/vQ==","shasum":"199dda99ecfcef478a11f9e89c0b9ee778aa6212","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190611.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc/vAaCRA9TVsSAnZWagAAIC4P/1Fv45HStTN3Vk0Ut00O\nm31qVlqcF+i8HXgMJDzipxNsfJEe9wPx/wv7WxdOb1i0heJtIvXpFSwc+eYO\ngr0CnZX6hFPTQq45+WxIR1H9qGf+cnl+OSTQMG94VlRy3FiuORKUeuISH+Qf\nQtPVkkM9FnZDBjxTwRugmu0nob5l7xQlO8BkoXnpN592kXcw1092Jnae1mre\nuguLble4EX4lt54b7E3SVIOLJofG4baSHtofqmhZa+HdnPGuoBRpFBlFk6Nq\nAo7cnYLleZ2Kwj9ZBsO2u7FTlfSgh3cKp6hLbFMrW14sbeRbweFiXV9AL3WT\npOokoiQk5/ZcwczwpuUMTXCZG9MPDEM5f2ov7VuSE1fgnqI3zNDGn6Rj+Vc2\n3DvwpBFiv0oWAFj9f80lZFxhEr1qK1ZWsjfszUorDEHey3arxqDrwJATYXfk\nbb8ieJtBqt4V/rN7vdKfsxC3Pa5RFgs08MvkHRewV3IiTdlp8o++typO/Fl0\nk3Qjm29VVLUMa3v38lVmBwSweejq2DODmoMJh2CWSP0EGlCw35g4mKxQ3Ulq\nZDMOGtZ4AQbkEqUZLuoazp3WWjDTEjWCfIb5poFDfrhCvD/oalM8zHmTJpTG\nNMN8Bbr4L2bnISkAmrHKHf94UxmkEa2Zi35Y1mw0nPVsa7ET33XzLl5f4zHh\nk5v+\r\n=dVyx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDDMMxELRBmSGHc1PH+2RzdYwVwK6pwgoZI1tAPVDL12wIhAPKvZ22S4W6oYnvDypp4u+YkZ9J75olQAQ34HOKeUsc8"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190611_1560211481750_0.8938411894023781"},"_hasShrinkwrap":false},"1.6.8-dev.20190612":{"name":"cherow","version":"1.6.8-dev.20190612","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"3bffe6dc5bb4cfe0894954f9343cc1b10f19e5e7","_id":"cherow@1.6.8-dev.20190612","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-anvPZt3nClr1q6hsIVhdsaS/2KL5xw+stf02RDOs5YfOM4F3G0ozkTTdJ2Y5C3/Bn4bmrSrKyOoFPPIjVlE8rw==","shasum":"cbf19e89e01f63c05eee66049489a1e12caba43a","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190612.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdAEGkCRA9TVsSAnZWagAAFQoP/2dIkxCSAWVj5Ys99nfw\noSHRAqbYfF8QFrdjZlNCiSvUQn7d13B6A0h3ObBMBeRcnJTjnJMOY7oCOPhz\neUILW09ihL17h0q93Rua40UDFZGZX+X5xvYmVdgm/E01vpAEkr/VxoErcKmT\ncdzAiEGRZtn38HV60lYXd5emP6nJK2Z3Yv27KRTEE2wihR4CwzaMoOUAtyC2\nZ+Ybug7EfdyN7IL02DTuS116FxH0vYhu9LDjOCfSHy09AIRteluI4i5yggJ8\nNwwIsPB0LRXnP52hHFdM/8qH33iuT+c1XxWKnxSirjgk0Jcmv5GUTGwS74WE\ntD5uBQZTD/Kiw4u5hxp6Va6ROBlZTvJw0Vn88LWRvcqJ8XbNqNuZeAKhQWFh\nSwDfyZ4K8FwzDbf9vpyM5PqzNAPl5pqDF7+k2VEbxGjy8oCdi4vKutqnO1a8\n+1+H0zFHTHI9o2C0llPYldBLDRE9RWFzCLfp4w603n+HH6YJO/skCrg+YRVZ\nwT8o9jO6uUobRcNVbT4CI+DEeVc06T8omTseIADlCzE2aPxSRGehBk+Ritp2\nDbHjsNUa1Pwf/EBwW2fKAS9u4nTZkhv3V/cJ1jzoThxNIVlAA5GgHC0Gu9nq\n9LfPQt1mfh+HIBPUGYAGiaHC6jSJa9Xlb+2+YYvEnm846r/WNKCgj99QzmXK\nmEjZ\r\n=pTj1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH+L05rqXrWtNhN8bE0iXgLVOzfQ0HLlpVKPg/nuZ/HvAiEAkaCt2mkrw4ACc6X7gkl0q7xP0+Z7feTee6YhiS7eqqI="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190612_1560297891500_0.7159799548745474"},"_hasShrinkwrap":false},"1.6.8-dev.20190613":{"name":"cherow","version":"1.6.8-dev.20190613","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"ab092c6107b88b04c85583cb0324c3d7b24584c4","_id":"cherow@1.6.8-dev.20190613","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-NqhrzfVZYa1vu7WSFuqidrhtmtMmHMgKhzxTH1Fs9D+v/PODWBhcuOPMRdo/Zku+L/IRCOtDlYsZMl2T9m9rjQ==","shasum":"0eca3c0e1c2be6d674c0bdba50c1606321371812","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190613.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdAZMtCRA9TVsSAnZWagAAv4QQAIwt6JLyTNlm/O5ttk1q\nH8tLUuGhxsORYurEwp0flPAAYMQaJ5mctJ2UME8qhiuay1aIu/MZeKEAvkvG\n7y0zz8gVrZbOTxe7n40RBK8Xm82mVwJWrvuo7ElZ6/Z1Hcf7sv54B/DCpdU4\n92B+459dUVW8AW4d7q75/uARBG66yf5qPWUu2ml9DC0i5m9T2ouzTG6Jz3on\n7wZPv2nsY4Ranm9IiE/YeQ/mKYiYokpIFJmb4BaKl7RcN+bmpEugTuXOcHxR\naRcwh0QxIsHDu/06jcAHT7rxdY+Lmbz4ZoBu4j6dYnAssvOubpjSQ5FzNSQF\niG9L/C3J5xFId6WhH+BBIsf+xOiYNHW4RfpMxtr8YcrTC+3NE/3QjfS8lbos\nDaHvuOK6s3+zWC7buP/bvY+RBHYk8V6Uu4pCh9zmsFuaU4l6KklD17Q1weRC\nhoDgE5gHJLY2MCa8Gu/psygWb0BkmR9Us7Twtj/AZn3Y8SZ23ZcNw6AzomIo\nqURvXz7g0TH3eQIce6tQon89muVlmSloFqlHU88AKe7hXFEdiOKODF0zijkU\nHkhEJ7J4NFeP3DjQMcu4A/jvkwcMjLbjdf3VP52AEfVTzoX5H7l98wIR2YSw\n3zkRzAqnuzt3DsK4PGz1jxBiYtozjWeCgRaLWkmh80j2swhXzxT8qkkqVMyS\nzUSk\r\n=ixIp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE0IKQmcuGORnFh6/vXY1zEVqGikcRDWjKs4VuWAsBBcAiEApyPQFar3mYEfGGBp5/pfjU0S90w75utmpfPtHnOU07Q="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190613_1560384300453_0.6220262577193034"},"_hasShrinkwrap":false},"1.6.8-dev.20190614":{"name":"cherow","version":"1.6.8-dev.20190614","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"9ecdad10974ff69c9f013928d5fc3a002c21cf68","_id":"cherow@1.6.8-dev.20190614","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-ERNqkgmV2EhzU4GgwQh6Eus/Qa65OXBuhM6ljR633h70Ve/7iRGhLfT3DVuBZUhfLmsJGrVt8UBmbC67uGPy5A==","shasum":"aff95ddfb29d4c2696401617c14e80c339273aa2","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190614.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdAuSQCRA9TVsSAnZWagAAD5UP/08F7sknSYgmwDpP2WUO\n5ckBJsvR44019YMxVaEoDVV/c27LelTe98sJN83xoLXDPopP7pKA0i/EZGgS\nlRzv/ozy3X/zQWSl1rTRbgtAkWwNMMqvior+CiAv5mQfo13W6UXNgbYLZELl\np+bHmynLsTvN35kIuUI1PRWDapbUrn4QX+KZfxHFDUtFbjqxZxL0Jtp0oNY9\nCLuhi0pvZmdezXtsLphqVAMVi9qTdiU/yesx0uy/tEId6zfPxcEyoZ47UUvU\nPISoB5Kh9vRq7DC+LBVwBRF9e+mGO3zqQh8QZ1exgyW/uot84NRv5mIwBMKL\nlpwhmiiAOFi7qJOLLb2XisqNnvYEZ+rCLc/5D80/ft0F8PYCccbOUS4lioKo\nk/KyqA0FuLaWnA95wy4c3Wc4DrD1pa4mLqB2jUSJagW2vp58GAVVmD1YZVpd\nHusajRKh1Cm7Qctov4sNKJCq1/HzGwGRIKBaXZk+oyiVAK4Fa5MoiqZcsnGo\nGFffeLUi6p3P7eE3tuUY3b73pcr4VU//EP/oG6vgOSR5yYsmogBUzD+1KM4A\n8kLLBW0Y9LjOUMXBAQ8i/KJdhOmSKnoa4GMlSxYoh1pIu3AANMR0MxWol3aG\nTKTgqqQE157abMPqp7wCSoOEHrob4bFnLiBtV8Nktb0RxkMu9L3A70fmZslT\nBXeA\r\n=ABz5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCVAvwg7JtwAGPKYrEgSw15Y8FlKkdMqW5pJccSkYIRfwIhALsVfP1PBL8jKbJlKNyFLORTz/rbR95/kz6dHCKanRps"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190614_1560470671734_0.9476262165191396"},"_hasShrinkwrap":false},"1.6.8-dev.20190615":{"name":"cherow","version":"1.6.8-dev.20190615","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"833d93da77983613df4a78660acc7772afbabf68","_id":"cherow@1.6.8-dev.20190615","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-GZBkbFPQkQnUMAGYp+E7Pw2KB7FESTer0tCqRNuhgRh1CX5hGDcSyml/UDhoADu0WNb3lBEscqCfeS27TKrbhQ==","shasum":"c669d90aae585cf30bae4acb6ddcbf743062d044","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190615.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdBDYCCRA9TVsSAnZWagAAQFUP/jgWFsOF7OhIJKc8/jrC\nHIIHYT/KA8XLlNjNTy2eycibG71XcjrxVrx+JoHNdpxzn1ML9lW8dgWTgtx6\nccnyD7EqFCCOvEWrXEctmpXlR4q2nf6Hr1LdavgeVhZ3y3DFfUVd4x/LDKFj\n8dJH2nHLjkBj5mWBvzVIs+mXUMoHcJJ868vxpvrbC1lLOl9FtREhmgwy3mMD\n7QaDRRYqxsG+/zUG5ZqAF2Ewi6B7uDy15Z/EUYAaVBZ9BgfasuM0Cp9C7Klx\nF3/IUTdMm5NngcpnsGLH3Yn1Q2jDH1e307U4RWMRZ83kSOHKV9BF1c1OzR+p\n0vVWWiIK/03+pFcCPK/Yr7+RRJb7UTOaCN75xk4lBBugsZ/5HomXvZdkdqTN\noadJRaSRsoahV6jpclHiUhfyv3KKhahqOL/WCL0h5MlsnbVQxJjxdeCzfDNg\nTl79CmwOoOYIe7u7oRh6wadomn2xLXiExY3IWLt0N1Bl1CRXoHu9OiJFv7/p\nnUzhXp52vE0gLVhkkS8JlJpTMrVQzUru55mQvXnTBV+6W3Db8x2xyh1APhAs\ncmPScYVIc+7PCdOKsKD8bqk5/c0JNLLkuB0GbfbbWFeSkxc7itykPZKPiSw4\nLoZnoUg2Y7MsTczzRJ2cKoWJZgdyDDABY1vtOa5UlELFSn2+bYNqz43gq1WS\nlE09\r\n=QVCk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDOQYOlmzgyZDEmChdnHalmD2GatrxGGXDDFKFaOTtdrAIgDnIZsq2x+Q7MTK4w8rozuCQsA69Wg1dHjDEMP4k6cjY="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190615_1560557057363_0.18913626379755732"},"_hasShrinkwrap":false},"1.6.8-dev.20190616":{"name":"cherow","version":"1.6.8-dev.20190616","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"c74442beec35ebd8bcb7c1261dee830273b5f8e4","_id":"cherow@1.6.8-dev.20190616","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-Gf2F763shRbhSPPDNGjElWtncfSfTW1UWvUtyw/x3oXaOoqQIdH4L8ObHozXDnWxQlpMBE9NehkAqZjvvINBpg==","shasum":"913bc23c8dcb2e4dfaa9c041f934f80eaefcb5fb","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190616.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdBYhoCRA9TVsSAnZWagAAoEcP/iOlQIK5hhEQ7F3vOW8x\nFKgsfi4IVsTyPyxieN8m6PCEdi+76sco1K0WI8gdus5olbSKpStrIHxyAHSW\nLKxc1pLtSiUXv/hNauNR+vLAWn8tNjRKQEDLlQKSM1CwXVP/0cCWk7AgCVK9\nuTmbR9XhrWlRLY+DUW6PndV+iask6Mx584AJBXead7oUOT1m+PT8y4fzKnV8\nWKIzHAI0psuGJ5lPqRiIocPzpLLxy42hYpCqnSVKYdyoFzHQmLae2G0jgyHB\ntKs3T4yFbuH3bmcCLk4vcJi89UDiutFMbAd+SwoxX9YnBDjQYKjNcbAQOwHk\neV+tVCRQj+ninTtz303J37/JHWCmurKkxSvXD2Gn90Q7kJjjnObPHIy/0Xf5\nnq1D/yCmpMrfWDNYR1IoB7wjGDGVwlC0wWFYlPTnQI9KAo9a03ywy+7ZLvJv\nAXYPlpADGPXeth9gQKDJkkMrn8BBH2ZuvwKsOWlfQp9ELqlFz4Wxl9zTVMbo\nz5InXRxSaoHA/kXynQV0rduI3oGBdkswsuIAftq3GIbeijaevLxPb/aYsFHP\nqlWTXROv6cSDkIHjza236UGlyQeCO5Rf3s4djbC42iJv7xIuehSUSD05p8qC\nHasRPjfWGhrec4ysII91HNZ39gY7irGttqdEAxbZW+Vw9oBAtmdVnr84z2A3\neyMq\r\n=wrl8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICA+K9FDWBqKPN7s8KGgcaOwlDCyIrNjrmjowWiidUxVAiEA8Tf2IS/cg326wXgbRYEq8rcEKLngl7URTKo/bzM8sL8="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190616_1560643686916_0.055350536526884264"},"_hasShrinkwrap":false},"1.6.8-dev.20190617":{"name":"cherow","version":"1.6.8-dev.20190617","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"c3227ed22c4f3ee26c7a95f550fadaa9397557b3","_id":"cherow@1.6.8-dev.20190617","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-iep84azf5HTksT7qLHhLds3ZiJMHVWadRPLLrDGe0wKxTFLh1oGKX5Qqo2LgYLqrushc4RKPkzn3X4h9IXO71w==","shasum":"020ddbc89c324c5c71816bfa1e5c6e0026177b41","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190617.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdBtj5CRA9TVsSAnZWagAAqB0P/1NUeTLhWnG6HYxYz/Kn\nAQeQzlEhD8j+HWdeDSMqvlWfH7JwRdrWVJxPNjEjSmLBswFISmtK84lVvmm3\nFXlNWK8m78suy7wSl+rG4IcGy1Zuw+y9EhqN0sSCf7bb3JiGfnjnmsYitwVt\ndPvTF6iPeLyrBpwSQOjUhiMTNy8dHgeMlG+ZJ6DXV1FUIBjKamCd+Qx+z9/l\n8SDddK/kNwCxtQzk3kILzyYlnofFWnp1kvFAbGXgHgtadSvF7n+vm/gVa/VK\nCN3sZefQO5eFWTmAhuo5SL8KJJWxy3UDiUeYbuG76haToSa0gDGK/AqOoIki\nAxTIqXYzPSSsogPJYqVDppPJuuf7vob3mnAfyOMBjKxUbku31RZ3qv5IXFL6\nYTYOroyJXhzR7dOYuo2r/P2QXcNT2ARh2k8LoDZTcLDnJU1tYEUt7BChZV1f\nSF/teDGqjn5WOKRa9faXJ1m6br6Cykz3GRHXnnXMvFxoate4owGVJpsXTqKl\nvp7h1vYVciLw6ofRre/7/5HDGpWxVDwXd9Z1AO/GrFSTwBQN0bZANHeQnplE\n3KHagpZqnlsrIwFMayE/Z320vBeMOkao1uqhLrxvc1EXwro5LRDTtCfbaT97\nkg25bc3aTcPH7ZPuSI/TNjLThCpgRC8QuszxQUz0AbBCnFA9842z2T00tGx8\nIJtn\r\n=JG75\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDxz+EiLDcmU0eCaKZm0gO+9fLj68BU2iA72/WStnAeyQIhAMFhN9pXPKvtwHQGw1SFhPnAXohS1+Ym3Zbr7qgMALIE"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190617_1560729849093_0.36020778143012677"},"_hasShrinkwrap":false},"1.6.8-dev.20190618":{"name":"cherow","version":"1.6.8-dev.20190618","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"06b12028a4110e2e2b292b1c23d221dd28cfbf5a","_id":"cherow@1.6.8-dev.20190618","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-MX1WWzhTJ9eqkK9jODoEasoxMWqlvNBVMwrxqKmdM/4ymMuEzmNJsEMEXah73oLaOMIKG9fEac58r2WVLrcI3g==","shasum":"7566133bbe09d40c0f9229147cb160361eaa864a","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190618.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdCCqgCRA9TVsSAnZWagAAn6wQAJP7LH+Hyz2QUS1BQHwe\nKzRQFZ3CbwPrPXdOM+27aVSz/o6jd9AnUBLBvK+YR2EUnzusdHxruS7U5qtP\neu1R2+rLQvGG00sXO0O7i2leaHWFLcFWa+oiRDZKeNIjfTpl6GSXWINip+oK\nXwYgcwkrIn9dNKRLMvj+nKG0ahf/cSau01Uea99QuS4EJQDxy8DHwsVTGYLg\n2dVa0I00O9Hlm1gykLGO0pP/wkVDz5C5zDqzMwloWr5SGGJkABYyO4vdVeyc\nJKeNd/rfvki3Bt41BlhDidkf/sJXA/iPOc9TuFZGEZ2iuooqAijWKab1vqU1\nw0xfmLitXIDA2o7mtcm1iy9rsZQ8srvGsqoRRNhlFdyULKSSAbgO8N7nJ7vF\nkb+q6Alxpvv8fm+d5iM1mKVfSgdHffxDyjqDgevDOMR1YeP3FjULfcR8kX9H\nNqKJczu07JVQoF4kqQ3OlJU4aysfcY/yxi6CCeqWwV/yzxwfvdEOwcxt4ZoV\nJ6dJgDG/uRAity9kU0Pr5mD4vAR+8O3hrLxQMEq/Hm6Pzk0DA+ScYgU4SJjb\n++xrCEPx4M4fxQY4BT/AzeDYZAKMGe3gjFtX/i/unWipU9wLI68O+7NUdLhS\nE06CDkwpxtlzizLXMywufAyC+3PAFDeydzjhyj/bL5CD+nMa+Qxg5XXwehSq\nC6to\r\n=uPOg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDX9LMH7gVcE+tFSAOQDAmC3pSHc4Opnl02J7rB8JJv+gIgSN6bWYsmJkWjhk0ZtK/zSApzQ33jEzKovjPJ/d2Nouw="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190618_1560816287589_0.6536427678456209"},"_hasShrinkwrap":false},"1.6.8-dev.20190619":{"name":"cherow","version":"1.6.8-dev.20190619","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"71968d461d0c01f1a3dca35e802e2c47d2c184aa","_id":"cherow@1.6.8-dev.20190619","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-LsVc2kzLMVyFHTQUMcfKakvTT8enfQW4NnysBwZionMHGzTgbM/OWEn9s/2hZFQHYRu8T23msAq3ZbctYvz2PA==","shasum":"3801b207308e1a6c66ae51a3aa9aad081a193b9d","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190619.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdCXxcCRA9TVsSAnZWagAALe8P/0xFFZuy0y0T0PkAXAY9\nCQtCXV+7DAhQxeNo1jpgw87KiDay0UtfeGfmAL3q+Mvqk2YJJt36NbcJsvyx\n6QcHBKlN8NvzWVK+eg4PQDVydjW97TBPm65rSANofLYP1YsvvqaQ45hp5gji\nGVR7UWkNPXZT3hk1PNFKpLNdpEbqPo6RsUshYpHwLnKSYx+qjH4BDPsq+hoZ\nUN8gutw/yqqFHLP6CIZP96DdJZ5/FW6kzhQpe2psDzCoDIBWPGLel1BUx1K6\neaUrIeGzc/+btUnNiaVeXDGoMnlfqOSkj4TaOxAjmlglkk8zzxaDihsiFz6h\nfldZau0fcJLx1M7q93alcGev+IU54hs0WVBqdNSFojpGpCgZLsLZdcSm81nA\nhXzlLLDRFMZLh2nTNgAJpigLPgSm9o7AB12NE3cSJEy6oJB74CqYjtWSRuZT\nx7+R2ri/eiiem4dqOVsj1nEDDY+GKTr5uBuQ/c5gAqJ2fjbj+rHCVsviOGlK\ntFu3FymbdtPPFE9PrvwCtDo8/BuWMaqWgdKsRErkd1cnrdgb3flpJwG4yfxS\n1s2qPqHhw65F5pLWwghI7f1y8zz0TfzGI//ptYgpYC5FF0+dKsl+oBfIrHW1\nb1f51tQC682pVl1mpry3za0dy9EdC6mY5fLUYTSimB1XbZR6WWqEXu+iAHVX\n8XHm\r\n=k/Gn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCUJDHKGfltRXVLBbhX4tEmHSdGNnEGequ82S/f/HizMAIhANofdyg2Dhg4g3pnMZKJgcoetRt+bWIB1cZ8jWnmC5Df"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190619_1560902747539_0.9980578063660841"},"_hasShrinkwrap":false},"1.6.8-dev.20190620":{"name":"cherow","version":"1.6.8-dev.20190620","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"35bc8573f0a81bf597a4c2bfa5e571fb84968eef","_id":"cherow@1.6.8-dev.20190620","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-c6gJxrbqH4JYnQWQv0RLjVyqVnltBOMF0bbHSuyG8IiDvUaDHAzhJhCRidq80NjO2qwA3lEv5lW40p+YVQK2gw==","shasum":"8ddbc01c5423730d677c480105247ee35ecd9495","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190620.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdCs2zCRA9TVsSAnZWagAA154P/2iejbuZwYNgF4pJQ6zY\nf3Rc+F/OVkbu041oTSXFkOmOwUY622LdNPFypF5O6F3hQ/rWCxJI6vRIKaKf\nIK/Jx9tM5mJQD6ZkvtIiF9STJVdQstoGkq8xpy1bR+7fHu7lZWSLF3Xj/8dK\nX3FvQwcrEu5tFpndiibI1hLhvluJ3PZK7cySoRu4+BQng+j+h27xaNIMx/eU\n9C4Ans6as9uXKEhOwhHlHwYWBK4GtO0Jeb2nqlG2S0rVbbcWOm06JE3NMs9F\nP+h/a0SWJflw//TwIYlJNmop6gIIORGVtHpTW2LRaoqiobWCjWj1MWcURBjW\nKxjcfOoTxveH7cZqT/KFw+8aMOEjIqnuSTGp0vM59pKlUzy6A9Pnn0tMf56U\nB3656WJfXHF/aXxtvnHFCiVq6nPcTPHfxt8TUyJthttF2++Er5cna9OEqr1P\nkYm+x7Iep+x9O+LHhLDomiE7wfsAuZsF3c8NDIH2f7jY7o/QAwZndq5LUr68\nkFJ3VBqGuT0Cx97D/VQ6NNGkGOBNlxkn9qekoo7qVJZ1vYmpzFTGe3Xqgybn\nPvej8wS+7vICsZeRHsyVWaIGe2pzu2GvutACZ3wFKsq550vFDWG7VwtIOrf3\nyrbo2j+3bXAYd0OECcy8LZETZ54B2VflPip8guqXbZ5GwODpgwiZ5EdlOpPL\nk2xT\r\n=g7wE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHDvVdi7dKDs6cRxEdUcfts643fvhcx0ZjfNX+eoaIzEAiEAqZ/n6j658o8Eu71BOkbyYtURKYpnXOzs6H0ieMTMQQ4="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190620_1560989107018_0.1526648815128624"},"_hasShrinkwrap":false},"1.6.8-dev.20190621":{"name":"cherow","version":"1.6.8-dev.20190621","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"b028b53d4d565981f63100b51b7fd58ab87e5598","_id":"cherow@1.6.8-dev.20190621","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-GvFV8VVM23rcbP75EuEKjOt1r2PLW/eUQeBuDfputhRGlKE0YPIs2vtx9MyuFvDNR1ZYAk+p/lod7E9woBn92w==","shasum":"311045ac570a174337875d1bc811f6104ecad0d6","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190621.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdDB8YCRA9TVsSAnZWagAAgSUP/0kthMMfFwVT2Kw9E9KS\ndjBnvYuD/oH5zti5Lg76f5NHiDyJmSMn/jWkRG0Cpntr3MjetNqqSgwG3guh\nNqq0c/8FRk8rdSSgmwBUKnBC/ZvTLjhpuQHfNlmAXsvILKARbeUZLj46iGl8\nZssGb8oTGOnqLN4bBlXF5e8lFqQgzmG19u1KLU760kGPatPdY/p89rT5SiGa\n7r+sxIv2V8Qxuo03pVS9Lex9WGXW6kW7qdBPR7QD+13N+45mCeSrAtOFN35d\nW+3byxUO3GPJHxFwxm9mfmnadqs709HSm3sawsmmZ0MPb9vkLxoTcsOpngFM\n/k0X1ZLh96hSJb1Q4o6fdB1gpC0JT5GwV1BUxtaAJwGIahmHAgmhK9askUOP\nTCzKhg5A38ut16saESHbc1R3ZgLRVAEWXGADwz0OLbJKzAs96oOpeOIlheWk\nxgStWVSrLvTOmNEsgVfalU0Uk+gWoz/CFjBr/3bjkZB02YixBe4d1xzRBQZc\neluqtAz35kwR8JDxxJFq32GoousjPcmS7F/uSL+HYfr8n6I3aYarc2jRj+qg\nkyrMXhiVdNkTt4kn7+41Vl6oBrKCGEWGAdzDVjWWQA5OmewqLt2cENw4j6MV\nSDdBf3mF/xtxpwIIW6QTiDpBgyXYSUQBQnr0Sw5G7YrAG6qaAjRr+V27FK+Z\nfycW\r\n=820G\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBPjwOBtLgYG9n55I7D5XATuVKYDHKF36pZhqycx9mT5AiEAzzuegoRp2+COMBqcZOVOOxQiPTBxKR7qmeXxgr5mgN8="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190621_1561075479527_0.6846142764163718"},"_hasShrinkwrap":false},"1.6.8-dev.20190622":{"name":"cherow","version":"1.6.8-dev.20190622","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"d24e7f064dc9dadded191d8de53728e34b369791","_id":"cherow@1.6.8-dev.20190622","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-lw7R9hu9+KWRMV6HTRSA2CeT1BHJjdHzMr2ozJj32uS7t57lEDrpE4nXgmz4qkurZwgo5pX5hXIZ3sizEeWeeA==","shasum":"8378c417b96f5357f094fec2e5961c686716f336","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190622.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdDXDdCRA9TVsSAnZWagAAssQP/1x600DwdWHOJhCMEuJ4\ndPKAWpO1TGntR9tnQ7qOdmq98BVcqdx9LGiWAAm+LToQTNRYz5r8eToffi9x\ngwUqmyHGN3pVO90H/Urf4EeTURzHYBJKmKPW6elQGJdqdQUgX7upbquh8O3v\nQJ2Hisjhob220m9HkCZMBKzPQb9JnFBCTkeAYvGRh4MCJnyLO3oIIfWL6lRo\nHb5/wXkNAi2kQjrRiVFRelXq7txQaMEL3owGKp6wWaoMgyVLq+UsOLALpMPS\nSJxmY1VPx5lDzhndH7ghYFu4Nl1bGwjIacwqR7wpn0nnYJZQlhGMaqqWLlGI\nXqdPjxjCWsmHaL2Qyw0/482B7ybh34sJr4+DhinYo7AYyXgeEkcyyUfDT4vd\nkcHY1Y8diXQyZa29wxTYcYfyN+rY0hV/iJkM6K7INnM21tq9BiHYgRLbwBCn\n8b/vWrYv2Vg77ZHwPTrcM+Gb/mhHOTbTTT0m71xMKsJQ9sEZyy8BwxLpdsCj\nUQiabQCZdMCbIv32flb62FYBO9SP/cvZ3E+xlHraA1xNmp2oc8TI/2A5aNVi\nnALcEoYqyuX/+WN2wFrrQymdbiMdz78XQJfXxxOltp1ezN12QXJmYBgSlwyR\nwoTrDfNG1ce8GCZqQRoGnjUEc3L2esVQ68RiGpeJSUvcHYFr52drpYs3Pq60\nBwnb\r\n=g5gI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEz25aMY5f/P5VohgWF37p3X1ML8Zg1WcBahPIb0G2ntAiACtpAcoD6g2kgmY3xnTfw6xh/zBiKWTm+VASVa9HY1gw=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190622_1561161948197_0.5506972299749833"},"_hasShrinkwrap":false},"1.6.8-dev.20190623":{"name":"cherow","version":"1.6.8-dev.20190623","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"aa183e8f592035e6e19d0849e39f72bf59a855b0","_id":"cherow@1.6.8-dev.20190623","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-SzeaavBKA128scOpjzdO4a1NbS/1vFWF5Ayi+ENjOwFe3DxqkqmI03cAFZC4/kNLeGxti7ekdZily9wgGdGagg==","shasum":"681f45b928be3811fbf56dd8f4ed8da512092edb","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190623.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdDsR5CRA9TVsSAnZWagAAKM4QAJ3aYB/TXTznuDZCI2kl\nyJvWnf5YN6SdoAUEjPvaEWWnDabhthIodOc83l2PLxjhy6QdyBXpqIvTxNzm\nXAvsSw4XayQqVVT8Jmg6qvN1Bp4SDgibacKIkITpU0trYzeamddugQc7c4ol\nD3QwG1bsE3ohMCWmJ7o+t8t5QtvL7ZPl9Eys43gCVCdjSjlJnDSXGR4cftB4\ncoJa2OwCDtE3lpq+rKyzqvVkpaSi8AvzZEDDbU8wAamHTjs95ONeRhlqWSTP\nC7OeMWbz+u3LCnuY0U+vl2VraeM7S2+nEShWe4SyVerQLD5kUDgvA5QDexCp\nSOs1LgKjejICIltxo5Pc1dSxWdQLxM/YUHQ2xR3FHLGnFKtl0Fxi/WH/Sbl4\nhAsYoylmQHv31S8OurlJCWF47nTaLOy7dFWdp3CQONDM+DCq0v9bHNHFQh8o\nQcybYhWAzzbXoHgShN8gg9EV5rUz4MRMa8RToF4TJnHu3wbhyWVFkzsXagpW\nsxeKod4wHz4HnmOm8Z4vQkyW4aFygDbejefi7jmqpt7rUNXKgDQd9mGM9e/B\n5EhlJoZh4fxPr7yde9rNQrRL4VXfQnohB7PuywPy7YTVGiT8EMw/zonwQ3eT\nMSDnXvW0NMEkVROXqDT7PdJWnb5Iw4aoB4sFgYkmbUdcI3fGMob0o6avm9t2\n/1w7\r\n=MGwA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDCZO0J36ZrXjcOaovNJH/MmjSCFYeb/S1n1pJw6+IW8AiEA/hdxJOJ94y9M0zpmEPgCSO5LrIrdB5VKCk0TPBDQik0="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190623_1561248888695_0.6580058931896322"},"_hasShrinkwrap":false},"1.6.8-dev.20190624":{"name":"cherow","version":"1.6.8-dev.20190624","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"1df11245ecacd5026016a746225121c5d279fc18","_id":"cherow@1.6.8-dev.20190624","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-wELLV2X3UR54tRhbDwcLLO2Jk4z2f8dEjGDR4yEnzRr86btxSFkz2WZCYvrPBR5FUzgC3Luqg1YRS/bFvK9eXQ==","shasum":"e177b3a0145b4c31ed62f0a57b4e5ad35f0eaa92","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190624.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdEBRlCRA9TVsSAnZWagAA/8IP/3aGLxKpkoKqTY4rpSDM\nF2QbDnv6Mf8pcAxZzIE6/QCT48+porS+gGRtirrzjZ1SM5lkVfMk91qzJnl9\nbPaDsIulMa/w6DVt0uIPosgtt83cwAU0LVXLefpY7jhcZZ6FDZYsPFtd+Qa9\nXM1KsSuNhgS0PfsnkAyTaUkwI/ap9VDJj0oeB3tg9mbBExhWtL/BOgCdNVwv\nHaMc4cftyXgzsYI//S3bb6dojua1DhDOx5Be89u/9k4wZ0ra1aoFJz+lQNqP\nUTgROHJBKF0y1m5hxQd4c//4fh2XAg8ccErZp05c3aoEQmpZPQ/87iYBx1eL\n1Dr3XpWt3GIPDwaHpHgj1tgKLGpIt+od2YNwJ5pTRqZPeP0TIZZWrTAe+sF8\n54lqMynHNf0VEhyw1wYm0fI4UJwkWHzKbeJ099OL09FNt/kEYGixOAGxo8dZ\nu7E82Ove/x3yxQSw2igKEGQsrOo+bS1puazTyHM6tk1P13Dd19JiS/cy+F7c\nKUqvmZAhAdNJLEJrpie6jSzZTQSA3+OeKng3j4weWizJ+ZPT+kk352FroNut\nvpQeeX4HMiWq7KK+AKVtv8QoEGFT6La7NvDxZkopmU+uzd7x17XPPqtUmZ0+\nypssoHv5iQP39X63nZe20DOlsRjhgxxHthFa3TukRGwM/Oiyae8NUq16gUby\nxhyG\r\n=MYUm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBj/6VaqMN7N0Za5fNlWxnvYS4bN97to1ZplkrxNBelrAiBXyijw/0+gF1C2iB5t4m1mTO6kVuE1IU984Qld7e7dFQ=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190624_1561334884720_0.8036591457632414"},"_hasShrinkwrap":false},"1.6.8-dev.20190625":{"name":"cherow","version":"1.6.8-dev.20190625","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"8ff97f38e455c22b9d12c7a9ed61d192263c446e","_id":"cherow@1.6.8-dev.20190625","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-Aec8YQekzWwgA3OpR3LKzobjBrAbpc0MKQMauvAnIIRhYPKG53vowcwSWRBy5P7jKtKost1CPDo2lXi5l1AfFg==","shasum":"37e77275335f828c5255bbe8d2bae6c775cce836","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190625.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdEWWdCRA9TVsSAnZWagAA+oAP/jbrzRljbrUVZUyQccFW\nUZqxhOsPV/37DHOwgtxkGuYnT7y9hZwlLNpCGelnVEo8Nt5tQLQm4cN1TXyj\nrO5X8M6blltOvcUubmNC7FvbBSZquR13O0e0ufg/YqyBhw347Gs3qKcQa40t\n3M4rPxcpOnbk7w142qW6G/sG4CWbW1BBOb9QVOCjsrLFtHkPRgDgs13yCb4N\nlhGcRj0oEdK2lW6rWuV47mHlYNEBpLdGaHpcToENNGjHQpTnuW9rz35+ZTd0\nZ9XEDnvHquJudCkDz58irKcinaY7ioNY6AIvfJq/dfmm2OnHsj/gxnHya0jc\nULnh7Bk5qqzezNxk8vdrGhG10d2dkJKBIaM2UcNG+sD+jKAVdnlSTlg0J8K7\n7ePP964IyTBAmxp4qcvO7LWIAXfdJ0Ztc3UqPhVxPrjIdxyF2mLsHjgmsMJv\n0sYGHO10+yd5KXTDu8EtnADop2xq+WA4u6lp0VpTp4TRdEL81ay2cSKFz3hC\nxXFaadev0+6J5J0iB9vHKiIwrwh7KI1AjlLi9Jo5wEojNL9G7eAyi6LRb8xF\nSCb8OnfYgY50VVreLXwR1KPP/DEQf0aKe3/XIhAckXrbM6CnqUZqhQdMpRJc\n59RB3ZEh6G6EoGRbqf7xY6BLbE3hQPqK67HYqprW4VIgcNAK2ooV6OzlsuZp\nT6xY\r\n=pCMN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCIOG4nqofOBrrJaSeov7ruFtFwLHE6li+oi/QQbWNWYgIhAI7JKd+AAEU8fC4ag//XmbzpzbgPLXDX2Xf+Y5xd3nUV"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190625_1561421212609_0.6383039492983995"},"_hasShrinkwrap":false},"1.6.8-dev.20190626":{"name":"cherow","version":"1.6.8-dev.20190626","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"1f28f3a2023045153a7afd674b2dd4e49f205f74","_id":"cherow@1.6.8-dev.20190626","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-wGIQAH+nJHqwk6RS1ttwVdFyurHMDLRcfinM3vVGAIEdaZmRWv8u7Q0NRF37HDW3QQYPGu3+QPTwUk5VVdkYyw==","shasum":"e1e236d45c54ddf2adfaf0ee29f106e638078674","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190626.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdEraMCRA9TVsSAnZWagAA+TgP/26We3hgOi3c+dmq19G/\n+h+YK8sY1gad/YXEda+5PBh02J85b0PBUGn6eJIunDOneU70RKPMBejILgSl\nB/zlFa8QQLoemrqZeglHSO0i2bAVqr6GQJmO9OqdjT7YF3X55D4Bn208bMZR\nL1x8+IEGph4MnZqn1Noa7YIQQFDehMG7iYZoH20/o7USa3/ULWkkpfrTxaN0\nK0ssHteY/St0HBZNbt7Hl9bzyUoYGXnC0BHdqweFCdwC4ltyrgcTmzjhz1hV\nTK3rIxUuW18Ui6BkwchKsRcyaZIXVFdwicHPYJljFNeNxiIT0oetF4AM8zjK\nt3tytIDut8X2BOcK2c+JGwGOnccqLl6Pcmcr8vhZ3Z2ANe97n4AvlNY9J5/7\njmGXmB+C3T/mAmpH++06orqMIJHvbdTaSDYsMoJ703G/ianDIxfKN1o/KSf7\nl8nHB39CRedm9F4Yef8Kgn9EusvTs+K2xJbyBC7CR/fr1CycIKx9BdVHGIOK\n56L5Zp+1k8yRaJKv+5QRQLIY1pnkn5KVGUulIFnS5yD8THaQ8WDHWsTMtQpo\nIzOfZsMlSJNp/a+SGqPAPE5vQJBPTX9A6ZxXAn590EC4vs58SsVkpD3dcz4L\nuHousmiHXQDVL3atGN0DTyOorRHKQldEfpARD8Mo4/2xr9BO8e1R2KXDBMPX\n8tw9\r\n=RmEF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAKN2xhA4HH5SUuYWxxaigjSCv+r1E+nbRWZ6QWfOPFqAiBh/1sKKSh9qixSidP9jEAm5wyEvwyIEPr7aOhxEPJoCQ=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190626_1561507468063_0.6409058695966408"},"_hasShrinkwrap":false},"1.6.8-dev.20190627":{"name":"cherow","version":"1.6.8-dev.20190627","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"ceb501c206a9fc9d172723604105336b151e4f31","_id":"cherow@1.6.8-dev.20190627","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-aOihl6c/3OYQVJtUbdZCqzrxCusRNGiNxRx5mTGGumwe0pydYloZKvQE4A9xLMYXN/LCrDY7vm8rtopieUrFPQ==","shasum":"6fba849e7104058f7e91cfc13154e115d59bc8e6","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190627.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdFAfvCRA9TVsSAnZWagAArisP/jWs8m/DW6Er+ftG5DaT\nj7ulwkFcaVmcqZDIUasmZCyuTUsuvujfXmXTUc5JeICmhW+LceLRcpox1UrR\n/oBd3Acldd6M0mw7Y7iQ+g1oYFjACQg2VrYwnObz107wlWCmID1LMZeRnHpa\nQbIFVx8rCCV/fSNjhrO7pwcCGZCs2uoVZF3LKNIODNftK+6TOc/ET+5Uq5cd\ncv82aHVAJJR0tnm46KXe6PXk/T2vLxAlZPwTWRKU8SKmRLKW9iR4y9rocsj1\nfnPqYdxVFQ03AeHny3ThvKjcc8Ad6swhZRsboFyV17F6uF3opauiWEOWrfX0\nkliWGZonNKXHnY/rpaPuP3E+V8vJgbQ/6yXi5GUBOwrVrzPKY+TW3e9XMcAT\nltFXPs4pCuvqiYCjKk/Eg/41TDyhfg/i2s8oOYlK68DedSMPy8PGhhDclYhr\na7ODZqZ8DBlzioJjQm/KKJDe2LyTQOY5Kj18k6yBTQXkYN/BwqgWCRJHZDfY\nwX3fm+Rk0eLYvjVWMd+Hzqh7bmLuiQ3deJBL4r/SLR64hir3hNsCc2ab+s/L\nviaDrdvERuhuTKCY71dyuFIFEsvivslBd4yVU+ZukRieK6G4fQZUo0XQ6nUq\noiMheCiraGq+4O2+GNLur+iGMmw8l8DiFjNU2mT27R3LsWqbUcK1XJ2awbAM\nVGja\r\n=ll4Q\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDtc5CO8jofVHUSJ4NfPaHR9vWJYwZURs1gkdfcHJw0SQIhAKV8wyulsFemOPDY7NctC7fBn0cvxap2E3BgMxSa1mpx"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190627_1561593837066_0.15370303298545274"},"_hasShrinkwrap":false},"1.6.8-dev.20190628":{"name":"cherow","version":"1.6.8-dev.20190628","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"27e73b21fba18576737b8e3ce1a00d3f8a64b815","_id":"cherow@1.6.8-dev.20190628","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-gJOkWXvIaVhKk4B2pKxEcUhCZawxIAixrllH0oX2AhJ11uBxx6It5eKBb+3PTCHr8b0lmHipbW+5qEH8HE4EIQ==","shasum":"f7592cc9a52b97c582525d26a3ddfd8ec57ec553","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190628.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdFVl0CRA9TVsSAnZWagAAq2cP/jGVn/P+AFJawqTAN5lS\nLpbLD7+Ns+HDiZ6s6qG6cfZ+hesdaL3cwiE6lKsDnjOnLfNxF8hLAltMuv+J\nJxuAfU/3IUPSCWdeVFXz3bFbNrtVI89cZaGaYHqXY5/qOSXUYbLauvRiZE+Y\ndFmA+dMxg2qAgV4pBi4G2Md0CtWa4+Kz03z1vqtpRGqwd0MUoALEdB2w2BJ4\ntxZOArFDmig/y0lPvb3a/1NLP/2P+ty+WQD6jDUsCGX+akMY3TMKd+O3N7Ql\njl3QF9n83FLdt41+nswZjRLpipiswfQWdIQFJyrkmSiwCOdGgC73g4spXlpl\n/UO7tH4zyYP1I34aECWw3CvHUse+woHlN7sIywv0hFsiDYkU1O+HyMTLGZxr\nIEOPYK1D/L/Ij0yYkfxu0WRqHnlYcIvhuF4Pmidrmq8xZdsAJfCoi+n8Q+48\nowlCyy0DLT6AMeq93trBWY69mslqPuwb91TOI1Tjwp+UdlwfE0AtrU8zN46Q\nTIM4C+sCrLeuEgBKkCq8TfsqIpAzD1LBr0OLFhBCVcF1O+wzzc9y+X/trl71\nPHxIkVERJdPToi0Iv5oGqOTKnF1xA4MqIWnIKkLWYVvy5EVybs98BYbEp4hD\nDIgy8WbDOZD/jqdGZIGWKC9SOmqjNrnanDn4EoErDJLaMBgcxkK05qcf3dQ+\nIGVf\r\n=5H+H\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAVhX+0BYpGwSlI2tsGiFzPPLE86HzkIlo+aKqjp739qAiEAlHNyRCKt0gdtQ6W90okVgrHrd2yLzuXsAhV7B/7Z9jI="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190628_1561680243321_0.3398057049190404"},"_hasShrinkwrap":false},"1.6.8-dev.20190629":{"name":"cherow","version":"1.6.8-dev.20190629","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"e33cd6725fd476de7d186590225a7226111f9e7c","_id":"cherow@1.6.8-dev.20190629","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-l/1XeBciloFPY2hozHpqY3+q7ASlTCRHrys1d2eMg78VwWiAJdSR0MnXm6TyRlsJjrHcz5yncsBledgyzdDTOA==","shasum":"4645b173f9b50aa5b354b577ded3996fd8971e13","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190629.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdFqsXCRA9TVsSAnZWagAAXUkP/155OlWMOfcyygyKaiBw\nifvbKTZSkXh8grbS3bLk17bh7Ixg8wL7lk+TCUCNYzikGufBh2icwJSqpHeL\ny1sHeZokFWCNxdQ8Rb0tjNXU3zPzoPtv/cFcgO+J5be06pA+7CjCVxd76STx\nXTZ9U49QzTPb/HwlLnXpncV9naXfY3viaj1fAQkWLkfebkxfTIFoKa8wNFXs\nNl6LVqwe4ReizaXY03V5ua36uC1nd6K0a55nPd1DUT2yj8+j7zH3KevAvDNs\nS/+PjAl1IpPSKlNiv0YKnjdzqKHiJFthbT8iA/oMZFRw4blLhcu7u33obHv+\nduZj15oIUDzj+sRbWWmE8IBaWuOmqiwDbkHfxNP9TxsnELT4ZHzB9M2GG0c0\ntyBvUTl3gjX2Cord1NYzrUDoK3YRA4vC/ootoO7GNrjgNCDzw3NM01Uq0vom\nwD4/VSvR8nEAqXpY0hak51zF+ABnZxvqL77Y8xfw3YWiNdvH26kkBQ3+5G36\ndoFKSAcv1L243UxG/1sPrdSnRfsMf+rXOXdD/xJdTx8ELEPl9lKtydszg1um\nuCUZY/iT1iEZUHKZlbZ9grU59bKB+q9URaTgHl2xb5apmSfG/pAyrf3yF2Dc\nOmGrnmr5FfrDht4aQtSCzFPoc+OEZm4sv5+UrK96WDu8sswNTkoWzQ402jqF\nZP3T\r\n=r07w\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDpy0vQsrf7VSiC5tO37M3nuf0QYpv7hFWbEA5GgFihaAiBYjg7V/5Klr60KFVDFa/lkQJoDkROoPIa5l8+wjZPtjw=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190629_1561766678978_0.05914185669807526"},"_hasShrinkwrap":false},"1.6.8-dev.20190630":{"name":"cherow","version":"1.6.8-dev.20190630","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"be351049b676ccd384f3ea7c450813adfc0e6e85","_id":"cherow@1.6.8-dev.20190630","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-slMH17w0WQYDWbX5HumRpbDfX/KLiyjks5JIi353UBOWdmaxF6onyMlPofY03B5XuFHGJJO1fJrTwsXInwtfHA==","shasum":"92fc72cc0c95fc912e4588c0f1b5f7554a08ca0f","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190630.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdF/1oCRA9TVsSAnZWagAAyVwQAImOGJMT+/e6iYvD0i3q\n6Hndj0uCcXUew3CA7W0y4ta0zpdbJaKA4a/S5x4PvcknBfsDUNsbpvRwKvp6\npPs54313++Qbh8YZlVAmk07/0Nt3IGp5LbgIKz2MMUiDZX2XTF0Q3bQAZM7b\nODHZ0n9ICs6b5BAZflpgL/H0x/We93f2lLyQSL7k4g7x0D/5lIwad8JUrA6C\n3uOpY8h8eNY0rY2ru/q8QEvuZkoUE3tPDK/piDDND2swsu4/HkxpdKl7krqj\nAMJ+RhXX3yqMCi441hAbubOjcwS7pXF5EdHDptd7QRYtB1/HMPXTUOUWvcm/\ncc21AxjBXXZafDvxaYMGaecvy7AYC3zb3vH2kUctFmMcLpelgOqh13lsFo5z\nuX/r2b2BZ+9g4MbcnfIMxhMPt4s42GrIoE0kst6doOM9fCgWwEtMsHidRahr\npcUciNQAsTWSyazBd5CxWou01RLOOSDrW/Q7qatC/oodb42JXWqI1iDlPK/X\nnV8FDAEKtcq1bQpCZ5Zu7LR/7vgNddgsZX3JrWIoM5oz+d+AqXmO7OweuJPY\n/onJEYuNP09bhMQ6nPGwoOZQ8iWxLPv6J1goimirFUhH2O+1NEsSHktPeL6X\nBhz8rXumaSA513Xwzomf2c1O6ze0njcRbxtK9yDv686quFu0j7P7bfF4+pue\n4fyj\r\n=gmbt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDmg/9O1ZEZKpU4M+HFZ04KOJkb+I+P0YfJkJjct4EPvgIgFIr0GmtQ0yndUuTBBo0EuVHiArC3bM4pFB+t7kr3dZU="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190630_1561853287505_0.27867916707220974"},"_hasShrinkwrap":false},"1.6.8-dev.20190701":{"name":"cherow","version":"1.6.8-dev.20190701","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"54aad325c2dc666ebd8d6545293cb815dda6cc63","_id":"cherow@1.6.8-dev.20190701","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-jfjCJvs+j5650Wti3xpZUeII/yVeFXBziVwQOqn1EqGFpwHWx8+TowtcBdWPQAXiFVKFtyzFuuiMcwGHcqVz4w==","shasum":"24b28bd77f89bd20a5a724f0c4dccb3547650954","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190701.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdGU4gCRA9TVsSAnZWagAAN54P/0OZw+P0g6bRrkXMag9Q\nJ8dD15hXqh3Nx+XAB2fHW+A4WZB7nsThjJZGdLVYvaFuJhkJUxkFYrJUBxt/\nERaNN40zUoGmFSrgowAX+8fePwlneNaXrTznLB+QMw2yKUVFTj48skrVEQtf\nsphSBqXJLzL63vaFGnX9cQ+tbpntB0nV5sL/FZWhqstoCmJiccJXFzN/p03S\ns1mHCj+L/sDJFPlBPtNLI3/KXCWTR7hsIMdY8KIu/2ABj3nnwBLY90bB1T4N\nUFENH9lJvUFFHAvHIKEkKt5Z7Rqhum/+1MazcKSuViZHM2HYfPSJJD/mlkJA\nTTby7WfSurjhU0dzjP6W/UfEioVDlDipY0arzRVmcQkXVTGqBJCecfztrmW/\nppYZwFpZz9J9aXFiO2eXjhHbWi8839lIaRWi7BujN7MztW68Ch942xtP3bnw\nIDH7tsOdEC5rzKvPN/sGdbdeVVX7MNr9GDQHDNfjhSkD5c9egfh8mt4oPM+Y\nu4UgAh+1LElViaKX9zgtCDg12Vjtskd5PLj03RfhLMYSkwl+FoBxIcTUgUDP\nW/ONC6y8zv6whFFXZTvPhLYDfPNnvRqyJT2t33z+i4872INdHOlJIlDKD6Mn\naipvGA3yUyzMKYfw7S+KNItosDTDOZZOo5ZKXga8aZHQvwDXbmgDuZKHkwB2\nqbS0\r\n=Xidf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAlDzcwf0wxMAGrkzKDGBAj4mwsafEP6S/X0MmElfZCjAiEA5/CbC2xXE7fJpqMxBZ2NTUhPccndCGK4NmyBjAKaiDA="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190701_1561939487965_0.5359485864307554"},"_hasShrinkwrap":false},"1.6.8-dev.20190702":{"name":"cherow","version":"1.6.8-dev.20190702","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"cc64948e026f9b4305dc0032655ab7e1714ff4f4","_id":"cherow@1.6.8-dev.20190702","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-QFHz91xdzSsOwPZ777VhQoNxDBrtwrqQfFPlabMukSVigg9OhlykdhWYQV1Jd4BgAejb8mfJMzCsZtnBtaKI9w==","shasum":"bc245d7628551be4cfca8e712d5c5ed24f75ae49","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190702.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdGp/UCRA9TVsSAnZWagAAKxsP/268Cc8MZhGeAQCJ7my5\nfzbkGSM7xbxPW6JSCrcR9QaILt5ap/+lzkpKGBfts9kLQkA2MoOzkuZ+hypc\nlOrvrmy1z12dh/iCoCr/pus+4YJH3EpxwKVb70rDMmTfBj/6lKABN+ApdD4U\nX90iIg3U6sTb6A6Oln7W2AQh7YbPgn8HGYgrRIUuzpCbC87LeonqlEzIBtxo\nVACAcqGwzAIjp7P+GtkGTA2qcrnN+8iWVaRmVBJ+BpnVWHmCf5w7zZieiwfQ\nvbpsc6PNKkhk2W0p3JFyLW7gjRDqp5HpP201EpBYAArUcMnmQssJalhH8hEA\nqFqUMX7gew5qadWaGLlOYMxJr5uM1bApCZbK1hg+Sd62iR0JmrC70vRSrI1j\nuGvnPf/elYH7EP6lo02AkcT3v71QtysNf6mmtTDAuAzsEY+xLdBmP7Q2Dr0T\n7RfVIji1mXWMd0YFnsjv1xSjFNETQNwwwSDSenGtpSZI5LYE/+xvVoknopjz\nvnRonAfFihNb4Ktohs7MKB8vZ30VdaCGMwelev91+ZrB9o7jaBmkTrceMaRM\nWOS+u56JKFy0KEqt+9JgUsOM/f0QYphG3u1Cqd0azzxzzq8CVGuyK/+L+lnT\nOFlgPP3528uMqdV0qILKw/Q4Cihw4uVGYIuCGmPdfJJiHTqtSIVZkYRpj4+f\n4eYv\r\n=n4u6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA6CoLqc7rZMTTq7OtEYuL4EEFNDhnaVuG108H3wq3IMAiBAeXsNLQs4vUxkMAg1vVNTiA9PMnog0QQJmgGtJlvX4A=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190702_1562025939757_0.022807777169994825"},"_hasShrinkwrap":false},"1.6.8-dev.20190703":{"name":"cherow","version":"1.6.8-dev.20190703","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n**Note:** No further work will be done on Cherow until [FKleuver](https://github.com/fkleuver) find time for it. As an alternative you can use the [Meriyah parser](https://github.com/meriyah/meriyah)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"df000fb6f5be1f7642ccb35ad05965ec3535f6ca","_id":"cherow@1.6.8-dev.20190703","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-SdWyvklrhEBz1T3ZS7EDPKHXg5pwruvKmFADFSZ2+Z7zKswOu7ngeAFyyb/FGUfg1FX+82aufQD1Powvh8s1mQ==","shasum":"d6ee3851d80ba05506b0e0c983ebee7e879cc28d","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190703.tgz","fileCount":84,"unpackedSize":2162953,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdG/EfCRA9TVsSAnZWagAAFhQP/0DZZwHhKLLIXl0mmS3C\ne5S10GvMj3gTLbu0zl1CRGBt4tU/bSAmsbJTYyfGmA0Vz+7TLX+79nBmlKga\nkkEfctiBc/9DBECegft+RemsitdH0aL2fnzYo5sF0RPsrktGuFOu2Zj7PYr2\n22CBgTeq0mhtshXiBgldEKTB49A/dFZkUOJoJDY008vK187IednevEv8iMDV\nMARqJfp3TgEPasX9QxNrD67a6WvfYYx0LjFAkcd4a+UjgY0QqiyKS6k4zU9m\n1FybPmTrPeHOHUL6KEG2gqxXSN5fU/UFH+Tt1D7vLXFhq07KpecxpRo6RJrt\nMakpVa+m23esIPDe0pGcbgx5KTS1HMH7ldenNPAxQm4cA3+WBUHvyPPLbKvr\naNzMgj0WYkEi78CyHVBLFkUj1h6deVUzZJfQtPhG6Ke1zFMaapRhc8js5i8v\negymQj6bNqUC6fYVdn9jDsFDFzbEMIzL3aLvQnzXhV/QGkWtICeFKknHNPJT\nd8bidoqObkftiP04txy+s2nlJDwyRgh3iZBTxYybWTz7+XImLsH/jM6/p7fE\njHQBapl+cWnvC0QaMzb+DSj79NPFtnE8j/9qN3p/u+MvuBDxW8/sesBMmVgV\nsG43bnMxBoqYsaDLPYBB9IgFqW9uRyvohoJYyudEnxoYF75XH0UbU4CcRJwy\nJbJj\r\n=dRpN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDN3m8W64h0s3jg3Pzvgk+M9BlYWIftRRKJVgApsVaZzwIhALKE2HnMlW2sGw4qKIg3QpIVKn4jl8KjKlJVfrVp5VQu"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190703_1562112286489_0.13367612598741974"},"_hasShrinkwrap":false},"1.6.8-dev.20190704":{"name":"cherow","version":"1.6.8-dev.20190704","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n**Note:** No further work will be done on Cherow until [FKleuver](https://github.com/fkleuver) find time for it. As an alternative you can use the [Meriyah parser](https://github.com/meriyah/meriyah)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"d29ddbd4753eb839e790b18b77e0d6c7d11f7348","_id":"cherow@1.6.8-dev.20190704","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-4bRoxIPq/dVXp5LQD4KJ3XkEFGzh5ojWhdxeCjAjcnRsaYIScK/XTypYGmBL7QxkrtQOCCi8Hd+opC6FWf/S2w==","shasum":"6b7e174c1e1a47a93bd2e1e37cd93e404adec977","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190704.tgz","fileCount":84,"unpackedSize":2162953,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdHULYCRA9TVsSAnZWagAA15QP/i7I3HZyZurkM0dFSSlG\nF50GXFL9SU4v9WE9nfYAgCJKoYjsXhoYpISZg6hKQbK+wv1syXy8bLCrlUkR\n1Xq7pH/+1f551yWmqU3LjOo8TqYyLf9zxA5Nzg83kOd4xcS1coZ62RITgahF\ns8gy8v/qQkjECaq7UM6BMMJVb6uXRB4nNtTzz8hb34HP0zEUstWVWHsB1/vx\nS7EIvPoQuSXfahoJ02e7r/2CWpX7doTrbRAPrsDHDE3d85QG6AR4RTOlYv1w\npkZBhrieArk2nNL13UGGOIhxZg5/xKO6Yb6KxLULWqr4bBB+3TTHSC8RLdVi\nnGA06IViemI+nZ5o2FZdTWsWRZ+PhO/pyx74Ec8/n7Hj8Q/SjAbSzy7UYzRT\nGVOiFYzqThy85GbxVxFiqqHAgczTHlrkSmznXDD7CpBoJUzPNZehZ9TjTAo6\nF4f6EQ3ZQk9YA34bTqR/Kw3qf0QOB9dQ55jN3LzYxTNp2EZGhgQnShepo44C\nGYq8y0GLpfg1Gf6YUVvp0IeM6PlJ5nQs3tDTbsZiEOajBn0KbuoN34tfdGjc\n++LP8rI5S4swF5Ph+sbXdtznElRbQUm8+KPZU96j6xaI7zD1Tr2PZghack/j\nYqV7qftkKyt/JBYgqg/KA+4ofPt+9vnY/XiKT/tQ0TfemP3GTkkwVEXEjhS2\nGj39\r\n=2WAO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDVIJxXGTLlQoM1Rii6KQMH5H45pQH2Z6nFPIP0bD0LUAiBHeET9dxV1nG9yGkqve+lLzFJuGjpDqM7kYdwIOuZy5w=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190704_1562198744193_0.05654396232477721"},"_hasShrinkwrap":false},"1.6.8-dev.20190705":{"name":"cherow","version":"1.6.8-dev.20190705","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n**Note:** No further work will be done on Cherow until [FKleuver](https://github.com/fkleuver) find time for it. As an alternative you can use the [Meriyah parser](https://github.com/meriyah/meriyah)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"35013838ccf72739c2efd72e229d232780e7bf20","_id":"cherow@1.6.8-dev.20190705","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-Ya7TpJwXSDIvk20UVhMZOwsc5dnICGCC4WPzLbesuTCCp57Vv8ugR46yhHk1z4af4GvjrB5ogmDIj7C+rXdgXw==","shasum":"eb0113e44ec4b42764b4b46500d535e5b0508f87","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190705.tgz","fileCount":84,"unpackedSize":2162953,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdHpUdCRA9TVsSAnZWagAAR4YP/iByJ54kLaRfIoH4AKvs\nh1NVZSvd1ufl1tJazp2nD/ph1b3A5JLmdQJj/pib3h0z0JmNOG7llX5+aJG7\nFdQ4GINdjDNlpbNmBAIWMdZBr7lWP6/iJdARZUuUIzy+585ESyJMfnXKmXoy\nDUBFMKGe7MVUaQBaobd1jcUn8OE5vYtd3RCQXl3EIkYNFFvH/uaWDBwbHxMe\nZRuhxPnBaWy3lEGD/7v9lzXGgoTFdrhsK5ioISqNvUinrvmR9yZdbc+s8DLO\nYQOhgQmHN4/6UnmRV2VcIgOD0ia7BicHtfHppxfBxS0LTTbzOE8hQ1nPvxiY\n3LQvjE5lMjtPS/gyH8rwmx4XKbjBfYcvDdPm53BJNQcJQxu88tbzfZoWyEk0\nJLyMjtB6IHq8fBuhvvp0x5EV6M26zbyBgFB8Q4NK/McWyH5P3Vied9S+8vp3\nwSNzRVuop9uOGLSyTB1EY4NbpUSIwlSTjGFWCfRrht3AIZiuMWcr1d5So+5r\nqnPb0dGNydZFYRumteL8V7kfI92Joa+p2Zk5TBUUeYeHPYEdzQhE4tjSVlCS\nqaKqRa1oNojXj1wHC4d0CLn17a3i9dCBydAat0HEJqc0jrysvmOptzoPibVv\ntUq5keepuWjmdDVu/P9is/gcaAdiSFsDT9CZKcc3lWUnh9sOvHGBu2Wj/QU+\nk9Y9\r\n=RWzT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDnwlTq/Ae60ia/w2iatjWlfYtNovqR84o1GbTWm67Q6wIhAJj0Pdee6RJlUw3zcgs52DG54bx2fw7Aqb02VNEIsof9"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190705_1562285340284_0.5796394098815187"},"_hasShrinkwrap":false},"1.6.8-dev.20190706":{"name":"cherow","version":"1.6.8-dev.20190706","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"0f31f8695d3d818d053027e3e2d11a188030268f","_id":"cherow@1.6.8-dev.20190706","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-nJPfJhpnu6QO5dtSHfi8oVy0uGfCzKemXVeeZ2J43gpVDhd5poUilFOFE8Px4oK+11eWkDO9XG3eS8zzqEvJZg==","shasum":"d615a3ab0901b918a74d5461e4e6ab7a3a9cbcee","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190706.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdH+ZDCRA9TVsSAnZWagAAS9QP/iMsGjmJQXmro5A3AjTz\nnoBLwOOlARAKdTh6QXlBKWUb+IR4TI5iBhyYYwuysrmUoTSwyUmx6j5lNWUY\nScXGYyFUSW2rm9ANYI2dYSoXsdd3rtdMPY8WrqC7IV9q+oZnJZbSuby7pnlc\nA90iiQctb+HOncplWbwRjSvKf1Q7IzPf62eLMFbIzBdpl6gxyf4RVNSWluud\nnCzUYz8mP13P+mxINUzj6KJ3CjZLUoLl2BJffMY18YAZoLFTLXUSDVa9vAkd\nrf00Ru472tHGd8j1+9SCoX29fl949Wp1mKoGauhVHspTpeqZb4zSC99RLQLy\nWdyWzgoGwD4TjeR74y7P8hGjxQy4STx5yV+EnSLYZZFeivNJjH89Wp1fL9fl\nmha4Im+UBg0j79XOhYYJWJv+x2dj0xpLjcQWvVoxCvszU8gueUr0uRBKqixR\nZqX2JCy2wm/0tbYTaGBpO2/P3ppRusE8/al9RUbBtUWN8gFqrjWMpM+FfaAu\nMTEor/kNkD9IN+CbVg5s3gLzAdLWT97BFG0TiidhumO1BjVJHiNLx+FT7ibb\nOm8xb7tuGS2jsxq+t++WmPbiG7QeB/AW6NPIyysC8l96cXHAu/s4437mrLvV\n0CcbIIpzE4c7m9/ShGTBHRhFerJQ9KAX9Kh+nGk0kZNxoJxc/1ANd7Fb2nTz\naSTs\r\n=Q5FQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBqrV6ajtNbLXRAj7Tj+fANXtjoroqLPgLzAwlMvDidRAiEA72PeeKGXJd/h9QO8irX1GB86f0PCprN7ESp5qWqhSGg="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190706_1562371650960_0.564593401922332"},"_hasShrinkwrap":false},"1.6.8-dev.20190707":{"name":"cherow","version":"1.6.8-dev.20190707","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"f60ac795f47a18f9579037e107ce59966d6c01d2","_id":"cherow@1.6.8-dev.20190707","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-WSn0sMRgVmkpgTsF/N+1Ql0HxcLFf+eIdtOPB/G16iQLrgiNL72QGjaDxxyeQnCRuNF7ZiE7a+vT+BTxmw71Yw==","shasum":"092077ac2e561a9c4a22daf8dbc01f38d67192b7","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190707.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdITd1CRA9TVsSAnZWagAAOh0P/jHRBx54+of2vskMVDmH\n7DvFTQsZ6gosyuV2uk+uu4vPAIeNvy95tzZv3Duk6wZSPljmI82SIBjNpOxY\nk53WkQ3hTr/vMuUigTL4c+5zgF9GhYGs2aYjULc7q2XkgBdBxIKDa/SbEMuv\nC0THyKY/CoRrI1Y/bWrVPnpwb+x8FrH6qYITlNygm9Sytvtg0NEruWE0bpZw\nlw62VJK35nuiotHvi4JsGbN2Xe/GHqzOA7YgHcUnuQ/Kn+Ko318YNAPi5AC8\nwGpakC+5JwtYMxFsEg8amhUSIKP4no5e31B0dm/S00iq6DO4s5sb1RYFsIXv\nBtEPc0hOKS0zwQo9/1aeC4Zn33n9GWAD4rz20s0vvGEpS89OGpniLNabWBcj\nYj53hhIwbGBKi8reLXClxMETF8kzIehbiosT4vKuYMHC9/oWPd/8U1XqmaIi\ndYjaH+301wXZashBbi5Ld5tpLp76UZirM5PdMH0QNtVEQ9IQivWRNlFoGdhv\nrkRPq4ut20lnP40u/8znMnL9JQQj6ivCCG0juoGDEF3v7oZUqOg2U5HYj9uc\nbTk5btIj/JR9ryN8jNblmXzoqA9upD2Vv67fvunHMv0w/kvf2u8Yr40xMLCY\n+iNN6qBlRY1cp/YUr341VIwfoPmvziXFXsTSkAQvAYLAG0eA9JSCJVdUOXMb\nndPs\r\n=Q+/I\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCK3QRUndP9Bt22eRBVFFbsT+Wk0Y3A8HAeJXLT6uaMngIgbB0gbAbiH23f8twnFc+gbVrVNBJYlUZqo72FKK3iDMY="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190707_1562457972561_0.8690930265862415"},"_hasShrinkwrap":false},"1.6.8-dev.20190708":{"name":"cherow","version":"1.6.8-dev.20190708","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"d2c5b1014a281435878c160c236fc77e51826d89","_id":"cherow@1.6.8-dev.20190708","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-pWiMG7MksmqDcN2p1+g4QIVgRpiLYd2I4iK0NTw+c9DMWw6Y2/hju8cQK23oJ92eSC1mlmfA6xbgpCmDHyrhPA==","shasum":"acbb50ee7202e3fd61ee1fddf70e8784436a597a","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190708.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdIoiSCRA9TVsSAnZWagAAX8UP/38vnvR0niRy1x83Awt1\nABnReZqcep9U0U8sJr2+jVJsSFFLI/ydLX+lwCiYiV8ymgjZ24nqfzFfPseV\n+cQmvEgbLvFzgQf2kliMWZ+04rJEg/XhRmYXvvgup2IU3Nr8sIQEmQjdW+eh\nsLuWaSzYn+lI6CPsBUMAcdBssyO2sKPy3A9sv1TUdm5nDNVHxp0wMcIFicN/\nwKsLNokXHZpkXlIHLmRl/pRBhBWPIGK9RKxu2eEI/VU55BC9KWZiKTgicySQ\nbQy2CFTgjqqwUIqlpH4W8OasWvfKSCIuqc5JrLEWcA/rJ7kf1xxYQk0SD8E1\nqbDGH0ifPfwaX5dSrzmGfq/9+DlSZZ1f8VQpT6UDTIdaqGpOYxu/mKETs3gc\nSeGB6Br5JkJEXNvMfJRiPkLRbD+c1eguFL4+5uAIUuhEUzGJtdz9QGbWtoD4\n/TRCS3p8ktEC3Cyir6pMCc3KqxOMnrL1jLWsGqRsSYgCRINfbbFSOovavAy6\nBhPV5ZCCRAynApHIHDFBVUr/yw9l7lZdxHzLSxo6ki/RU9eTfZ5YTxb9G9Mk\nnH/XdUpOkU1FKGm90tgHNNXlfuAjW0w7TRoGQYpO58H4+uQ0B1vaYf2lvB/Z\ni2FGFNVIAjxmoiUOCmvAHCm/XTsvDdzenTu7EBKvsxhMLIptOnnSQKAc/x40\nvSUK\r\n=tevw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC3iGYu5cMZ1wPowbiT5M3+roZw8gYqN13JYIvDrTfW3QIhAM7ghXyYC0pLvNgKR6960AP8YZnlyo8ySrn3FLPp1q0z"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190708_1562544272843_0.5258798410336207"},"_hasShrinkwrap":false},"1.6.8-dev.20190709":{"name":"cherow","version":"1.6.8-dev.20190709","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"d55b41d17e9f6cd5a420e15974c68256ce808086","_id":"cherow@1.6.8-dev.20190709","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-f84bq4sZpiW/8BhAAlXz3JTB2Z4efMu7e69PDDGjJ2nzIHrETIdTV83pB5NTq23odfkvC891DAuDHmS3fLMB8w==","shasum":"a73f42ab941a158f45887c24b6c52d78e388d74d","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190709.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdI9pGCRA9TVsSAnZWagAA90gP/2go0MA4j/TUlatkLEpM\nlZWk7kmJgcyA6eXtFVj9rLdV3PXkCDZi4FI0/x2+pp9BmtmNDz0ZroPyjZcT\n8B5pL8GyQwtajMguQGg5mrCOjdJN5yJQtFfK38X1sFfRUnOxG4fatlRK8N3W\n6jPre3IyVyy8yKeYIcXFeTWKC8VyNnxQXu/s8oEBY/JrnBe4zvMpYTEUfzUM\n06VBFmyQxttinozm8nA94POHnrtC8xwKIlVbIflPqG5tGzJpsXSAqBJDqYYI\nnXjHxl6MBP5BFyokoOqjM3PQ3FRsegn6tFk+ScNrcJZDFQ2w8eVfHU+N2vCM\nqi/1sQAvKZ70qM7cEHOJLMhiP91iN5DdgBSxMMdKTHBc8oiJFmegvntux/bf\nviW9gCxBAIuT856icPagTZMsxfRS8hUGQW11/KUTt/tWroqPLKwq+ysz6JMz\nwMy0gfr2pDy8WIm/eFQcEsCMRrEJHUK4csIheXRXDAxTYwdG8c5w6Go1h8uF\ndglsE/DdL+btOV/H+V1cHRyKygvMvXdcc1yfE/Jf+xBUiouwNNEhI5ib+3NF\nB2YN3gbXq8wgZ62tdIDk5gWgMfplahnijpuo+AKY0B0z68gN23YKODXjNwLp\nRI29gh1Gxqc3Ngng+dhsGk9kB7vbZyHZO323nUTcXHNpe/L3y8fuwmi1Q0JF\neLYw\r\n=0Hw4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDgsSN9+SocjWsLeldQuslA83bJzHdIzmGQh1+EZ7314AIgZzOluFVFG9HMTQFI8Xfweln9blCGMUf3EL8ysrU58I4="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190709_1562630725756_0.340870447469656"},"_hasShrinkwrap":false},"1.6.8-dev.20190710":{"name":"cherow","version":"1.6.8-dev.20190710","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"82896c92eb0bd263db9a2f6af1e8bfbca1ad81a5","_id":"cherow@1.6.8-dev.20190710","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-d5rGQ2pMgKCDyYwflL8bu78Vx6Zpyttc/24F7bdvhDoCuTB53rnOnP0/hKwqGqEbx5tLJ0AKbeoMr4rfMOyXHQ==","shasum":"34defba185978302d5b5e326bad8d826781c087f","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190710.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdJSvjCRA9TVsSAnZWagAAlrcP/Rak7F/z+zA4TlicO4YN\nVVRgQhiaVG9vm0eDB7X+bHRH+jsrPCRDkWBZUSahGwmBWrKMxmdMzSF1307K\nW9dUBILoO8oY6owEya2iZktI7mhv1K6NJRY5MIGAz6ZFq5GJUxz9gL30sGYV\nKc2onp0xQ9L1FZgUo4zE8cn6SjjAnKeOo1Dn71WQQDF9WpfBFORezcI8UmgP\nyw6ShYoEkW8Zl6EL97IYSmBXwCZv2t78yp97u1h0GFjn0XKQGhAaKiXb1oEj\nJ3LuC2Ws4xNQ8ZoW69svAjHU4cyjsiwcfsPaesswNWT2E3UH0oaw5Rrnvihb\nnqUfq0+y2KgSB/AhivzBNp98E1qYiQsbIDNZ59AnVB3FT15BO+8tswHbQgcL\n471DyAkL0NWfMzqaygOO0vxSh5QxS7QmRPmirdDs6EpBDbxs+nSlwYWiBjvE\nT/6BvFmXuw5a62c+q0Ez9igmZjlkPINPAy8NcGhRJg03b0PZtrKyYeeBPv3P\nHbMu+GxPl4b+iLWLz4u4Qug2jogfkTrZfycRFtwS6PofefKcssKvR10j6DCh\n9WcR5xlALkszfLx3jbWW/nkhlX7WBafFzj87a35pJnm9LEfTfXE3cD/OS2h+\n6FoUcgax1Zf2V7jaZAs2qGpTsf6btYxRNDDc+dXKaxWG9mZUtFKutW3+6d6H\nQ1P6\r\n=+zif\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDlWZRqFgyTW50i5sw6bSx1W48uyUc+DQSKln12fFeMCAiBz1qGwFurhq16Xl6EzzJUs2spHKnpsOwdh2RWx3iDnrw=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190710_1562717154828_0.3473994643562677"},"_hasShrinkwrap":false},"1.6.8-dev.20190711":{"name":"cherow","version":"1.6.8-dev.20190711","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"ddfc463991b07c31955f0e983fe601414e45cc0f","_id":"cherow@1.6.8-dev.20190711","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-8Tq7IkLvCpHZ2iV8vKvtJYp/ftsFL7DbUBwdQC9+EjxiATb4LcvMo37wzVHh4ekrtGzbIr80a0C4eeuwmQEfRw==","shasum":"1a299385e0ce64ccd891456e1403309ed572de24","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190711.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdJn1GCRA9TVsSAnZWagAAwF8P/1AN+u/8CeSFsH47h/sV\nPAIBfjZp/CYjauoVC/ko3yFJJWg6Ko1VeWCv4WI+G9wH48c0Zcrphr9a4hTN\nv1cboagv2UuG7vs6anKz0SLeSWzPYdvHRFCUHxWBkbgTMl9TGSME05jZrVHN\n07B8y5HsxLOm3eWtAUGcMfu+dY+r+q/ARLkB+QbVDjz+QKtvpemzO5oIjYz7\nqyRb52WG3BBjOlaAgFWSD3JjzTmptDvr59cURl2oEyDLVSfOamKBC945WO1a\nW8fqQLSPSZu9N/KzVSLuXtysBgWWakCsm7rMGIn5YaHd15KpmJXiTztVeul8\nw7F0oAeCpcBGoACxK4fM1RgThnZIgh6qZnXomYe9u437h5ITdPlOdkow1Yl7\nI66uFe7HcSuzl8j+I9NLmJVibYQR7PO8VgxnlQYbkm8FRNHFM5hm805ODQQw\nV2FQmNGig7QBvGHby2p4dK01RZTd+R/tNxekce020F378k+vt4xFqVjrDJtz\n+SH8pgck0azzU5J/n0pSXRuZsZ0LFlGjkZ4Xi9HGtMlLKK+9Ut9C+CXnTW11\nfKTVkn0Ikl7olMX0BluuvYGPaoXOV8qf+YUbpWzYq9r9JhDiqZ/sFRRLCNp1\ngHvCC2IH9QfPmo4zxmxYUkRGFu0ZJHsll7x9D4COk3dfg9RzNBpLWbuqdbBA\nkhLV\r\n=Lv18\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEEIzJDbicovazH5L2M1Cu+RTpQrB+G9CDZRi7HDWZ+XAiA5iU5sovxeXZhAvQI1d5rC+bVIBArDFq7bLyQcjWzWxQ=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190711_1562803525689_0.11251971090079471"},"_hasShrinkwrap":false},"1.6.8-dev.20190712":{"name":"cherow","version":"1.6.8-dev.20190712","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"0da5585fd9cf233f83b8431b2bdc0a2ab65fb542","_id":"cherow@1.6.8-dev.20190712","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-AsdWoeEnGu91e6YbGEPK7X6rb4C0pAJ6resheg8z9jIPEXmpve4ntkKx0KJe1qPhX86poHMPGn+sbCZSx7J9aw==","shasum":"eca585065937e3491c478841d973cc91beb15e4f","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190712.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdJ86vCRA9TVsSAnZWagAAMGEP/02+t48dpF77xI0gXgAM\nI0y+/vtj0mOQqRD/myXz1PUTpQBU2r/dFTbxyc6SNZm6IxS9e7vCAfNqGYXr\n45BI25yy7C5vZ5PlXg/APPQjm7v1yNp1QpPftYrB5HLtKdb85QBPm/NgCKcP\nASWY3iAc+07gLPO9u3xjHRy3J669pFUTswTooEnKbiUcTYNWbWS+Ln8gGZJT\nA3O5e8Kaw4GspdF4nW7KwA0ZyLYQ9vsGWjaceJeBXO87R9tdQbav2UOjO88D\nTcQ5fFNxLZ7/+fJvedOObbXQnpYFCgTArHxB27rF84AjoRHWDxXM4wyT3RUs\nEssszBo9c3VDE3WfzQcp3pV15B9UX6DdQdmGY0G9U9iIx8QygYOsFmhxHtfp\nRNEBtsE9QOSNluSMZOnblsxZKRwsfcHGh8sDJggpVNlD6HmW5Ixaz6h61dQ+\nP11QzJqYzigxkQ7QhiiRBxo17+87H1YYv8N91bovKAJgUe8t8nGGfCrYuyI4\n/hSHFE+X22bMfz7IoKVfxlq9p598f+mYS8S1foLluNMm9WvUQVmhq5Q7K2w1\nnb013kmvRiX+S+jzGMnnRsUHz1IGj76se6tRQnz8a99fggnHf9c3eJ1LLbRV\nGFGzf6ynr6mCfEGUU3IAL1TzsTRTBM2JFpPRMoVkIZVm9w2qJVOW9T0zZTUN\nS3XO\r\n=vFaR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCxU+Tr0uae6psV/IkUFn2IOevxJJcNFzd3yjU3M5QVdAIhANAz/AyFuzUGS70c644tYP3OniiqHn5rnCrw+yY8Dec7"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190712_1562889902297_0.7254811940632608"},"_hasShrinkwrap":false},"1.6.8-dev.20190713":{"name":"cherow","version":"1.6.8-dev.20190713","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"a161c926aecf6990e2fa568f0cf00967f8dc949f","_id":"cherow@1.6.8-dev.20190713","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-y3LrJqLtLcqyF/ZRgFbHA3EnePTsG1c4IpL3PId1Jatjr2C2g6WFrQy+CmLu6IqhldkYzA+mCqk1XF7xUupmAg==","shasum":"ac203b0790bfa7f1e3c81109680228e6c44743a8","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190713.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdKSEjCRA9TVsSAnZWagAAdWEP/3lqsVXhVGv8kUvInpY1\nQS9iMEW6Q0HHmGD7b0USuaPlwFv9hSEe1k0ehOGRACuRQAntkp2VLnzhKGPQ\nxl7Ktjg3ogAM9MZQW2AEGloNiWidAzhK9m+NRRsvmMSW9ky8r01pmJ2ouwk8\n3EdJPELqUmDWijGFyAn4uFIbK4fKqhHC7lrHP8baeQ9ye6fZc7B5jZxgmMHx\nTQHCYVDeY6FkZek+FzKCDeMQbDJ3ujMO5m/4nKD3CkpFl2YzVwH5NMdJcz1Y\nwHqy8AsweZgEg8XOR1aUvW452Gv8RYJJEyVMT+ZE5QTEE9HimzejGni4J1PE\n+6ikBK6MStR5eBUaT2UODPHadgDU77q499Rv8Wy8E4UAbh2U1UjCTqGcm2v5\nnM4AL4NpVRAPy7b0dUFPYXsM98sBBYyeHnTqXURZzxwXYmmp2zX43nN63HA1\n7kwrbOiimS8icicmxSbPpdL7xvRLserJiGTRwEfOi7MSW9kXZ7d4IKqC7vEM\n9XTbiI55RTYYpzKBlrReHT8h5mcz3lqLsmxcbZuaICdnamaEzsFhcKiu9Bb6\no5bmEUKnLZjaiBFya+pnuuaD9URA03N5L0p8L67KGcx/J+tiTQIw4K7Za3GL\n40kZF/grjmt6b1w9l/61DKu9vn3obNDJew1Tm0xVLS2PH2ewnqdNoNDitT0y\n75or\r\n=vdT7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID2RX2xCBoypGN/FF1sW24MRhVVaCRQU00MbuNXBzMkxAiAJkJf1l3nZoSAoWHnHQ6g1R1+mJm+md+ApYhbb+icKew=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190713_1562976546698_0.6026600135829019"},"_hasShrinkwrap":false},"1.6.8-dev.20190714":{"name":"cherow","version":"1.6.8-dev.20190714","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"34b1e2e8a60ada18b578ab016773d0ba67d59d6d","_id":"cherow@1.6.8-dev.20190714","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-dXXsEmOhBPbo9XBop6IB94eRlP806q7mLF6hJic8h+4Vy87IFR4Yfn0bQKbmtv8P4GmPvnfQB40eozuX9tjKhQ==","shasum":"1581dc65244274e64ff80f2b1b1414779fee510c","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190714.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdKnI3CRA9TVsSAnZWagAAajAP/RR4Kze50mbnYyv2Xb5G\nwkQb5BNKBaGSiyLNQNAxdETdVU0DjMjcOwm6r+2EX6JbqerKDvb1Hjo17kGh\ng3yFoMk1UvIZ+eJGdoQiVhoEh3p0A7ov2+K0kGUj+KZfEnZvjk3IHz7CJKWq\ne/9uCFnfwVyVIGMhl0BmHzkUzeipPpWHLA8CUrS439vrOxCAJDV7MJKpjtLB\n6g0kabKirM77qC7+f6KrE2H1/qKKE197sUYfOjVjgD/cxxmjmGo641rSXuGC\nydPNWTX0zO1wpH5/8RcxMHF/vyeK55d4sIq5gy2/dEGxqXhMiwUbJjSd/HXL\nTcF1+GWMEoJqqh75N9nEAc4t2j6LW8MO4ZbApFhfaydYWPY6wq2n0D2RTAgN\nLKpbVLe7DDLqHGJ1z6YSJ94OUa9fodkkWm1vwcXh5RUlURMcMGCKKV2Bujt2\nObQlqcVLiPIxC6TkL2TfhxD8PCo+C/awvfJmqEPwJ38vf30v7F3Z20qVQlcO\n+Ojdaf84LODUpdrbNPycTGmzofNleb8SXhdwfHtWl7Ou4JDi5YehPfhdsHw4\nZS8DeROUpEM/8UAMngGNZmoYv2CNSPvFiZhNvab91oYd2LaTqyg78WxPrsaD\nqqMjcOCEO2JICBXrbOX0p6gkPfTk4NSNpn8SqlgHGscrFtaOKS+VpLLbrHCD\nRKAC\r\n=pB/4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCgrc2ySyvyxj0rsOgRTdGwHaIhO/Bx/3v3Qxid22hAYwIhAKQ1v+Vh08pzWC6vVJQcvfnnSSfG8XJIJ9K9TCE/Dfk5"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190714_1563062838180_0.17786398940958392"},"_hasShrinkwrap":false},"1.6.8-dev.20190715":{"name":"cherow","version":"1.6.8-dev.20190715","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"730178af528feb7516bc92fad963062066b3a7b9","_id":"cherow@1.6.8-dev.20190715","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-mHrTHyVgfkx6MpofNRJoJM1RvpkzjzFCV96HfA+U+CGKpiECC40tuJeidKr8a80dtEdtnWhmw8Cx1n4KgzaY0A==","shasum":"3756ddfa0cdf2d4ed6ad3d17860c8e2ba6a8af31","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190715.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdK8M/CRA9TVsSAnZWagAAg9MP+wRSSdjoUdRvTiDT3L+N\n3T8F1yDsaTlgCD41K+mynqsQExRJtff03eY/G4kD5VNaPU82y8ZXbAI9Zk9W\nFbFZTx13qsp1edgNF9HoUj2QN1EOvcH8bXAhSZe2O2OqQAIbuGL8o30lZMzs\ngGDMQsY5QVk6r5BcVz8KgN6kzv8vQ0btJCJXaEUisDbiB0ZMz0qDa9XJX4UF\nK38qMDdJT5UKXy+ahbgcIWNMjMPWcaRzMOlKOR7tTRClZ629uyLwsGGBw4I8\nFB5CB1kyF2YdXsCh0tmKglpKol9V3zo+Sa5i/CPI4V1o5Gyt+VgsvF4ylBKP\n5IeJYp4Vi02sEPOV9TVsFKl1/pVr8EadZaVuWAQETNdswast4CLSFc1+zDQv\nSMTjVSQ9QXnSI+kg7p44qtUaSO7/BYtp/6/iHEQhFtDuw89SMXuTSpZ3hA6d\nMZvMm0c3xa7xXBew6VjEw4X5/luFaJ/eZIDtEzs+iM0s7YOc4CQTpkJmAfQA\nx6hLk89ZccrvP9v1Vus39UODn8G66ryrntriJeLBj7FEolHSiTu2Bq+0yzOe\nRAcGbuf2cyjRFs4QjuaMRt+jx45OlhCVKRMd00UQVbNEDuNNU2Zmk8f7l27e\n6x8Xxx4/zTBl80sWgVnxWgu4MqB5K9IxQKVswG046MmOQzE07a5AKc8Cue7X\n0r8m\r\n=F3+x\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDeDsjfHxZRN8jT/ZsMOjBCMzmHs2YK172ci1TxUiOPTAIgTFItk0crIL2pcajyVKvo7wF4fmau2Gqt38Ad7s+ajA0="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190715_1563149118324_0.45505701684903554"},"_hasShrinkwrap":false},"1.6.8-dev.20190716":{"name":"cherow","version":"1.6.8-dev.20190716","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"4edc825836d56bfb2a30b4ad4d9945496e6ed5f4","_id":"cherow@1.6.8-dev.20190716","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-N/LztoG8nwIhh5so8tGZUQVfzgGnlseDGyg3PHL+QzyhJ+CWvBSz43dRhK6viFjgWLYeUhPFvuwq3zK0z+iutA==","shasum":"11e15dbbf14458c40f13eca689862d1fd0f513d7","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190716.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdLRTICRA9TVsSAnZWagAAJV0P/37hOPhir3sNe9/resjd\n6zIH/J4Lpt1iAKw0w1jGPvLdMjMzHuzZsRdtfTrBObBliOI9dgA3ftjNFf0c\ndxPAulSoFcdU6gKkB5ANyWURNLnPmbyJcVLzDrh7vX0rEQynXgKqWhBMBzcu\nnVcyH0f2EwJENoLNVUYs6UHq/QSiXkqNfQms26WUSYFQWw5TpvyuLoR+XeMo\n+XYBm7tC3YWSWAIgzlLFLQNUxWlLs3Ms2BqYMzJJKsmPdnbpRyfUueHah5xf\n9ePfULM3Y8/hRjshyliW2Ir4YR6q4LYmBEhQTE4NMH1j7VL4Sk65oRD2cGr7\nmIKCcbAilL8Nx6OXYFjAABYGH3bAsZEYWYvvRQWa683sY1kzyIB+IKRVdqqV\n9IuUO+Xm2Cme+hJtbWMc4DQZppBM4c4BfF007mx60Q6FS13P1dhNwRqLY8bA\nzizp8WTTNhjptGJHr1BYtqmQrGECWXlXIQLXE/uAWkf3hSRYr3f4se5jRVq+\n9usOIJwf6GMsCEamZuYqtBL6jC32P/UiFFuSHTmre8nqy94KKSbX0QQo4XV6\neGZyCOfSM51I7XihZFudt/pSIskiqi6x2h2k5ej0h09wNTEphGvydHQ6MDNp\nLKOv7TO/RgefvF8/ucizSUeuDMIjSZlWnDmz8S61l08NFz60oWAjsY8KKMwK\nCWsB\r\n=iVh7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDHxIFcv66sw/XU9VE3vHeaZjwpXwPzyb6RVM/AqxESnAIhAOqD9sC3ozHgV0PoFOmryHdwyxMGVre1oGM8v6PV38ck"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190716_1563235527278_0.6797286290211562"},"_hasShrinkwrap":false},"1.6.8-dev.20190717":{"name":"cherow","version":"1.6.8-dev.20190717","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"d0677f7d68666a4e1aa94a0412a6c4ae6ab16cbe","_id":"cherow@1.6.8-dev.20190717","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-hV+y75mEiRVOzRqV9LTDgSTunZteEn2ZSzHuC1/+Oryd8yAAW5MlQe0tMkNkzvqwnvZBSXPKDntMN/Q8Incu3w==","shasum":"8c44ab0a723e332663fb649541b8b37cc4008cfa","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190717.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdLmZ/CRA9TVsSAnZWagAApCgP+wfVXmwL/Z+TfVL8QsYU\n0XmvvyXkeyG6ZjPzM9t/Vvd+Hqo8a6aLkOyO4BQCLx6IpFsT6ZZUHYzmWe54\ny32LragxFX7UNnBlisEk6lb8lcZtHrMQ3m34qI6cJ3ge3qIYnUYBF6PpF00G\nx+YqYSh9lyhAuzUMo/aP+S85bQXx1SXtg35Ir9u6QdUxKhRJl26LDutvhQW7\nOKDVMVqVLWOS+YSLJ+iAozg20VRDsuyPlznQQ1edtopbWGXLDXKHg69oKCbi\n/J6CIgREosVekG03VgPpuYp1nWbAB9l4y/IbdLKzWsG+OW5ekcfF2rZyJbjO\nWlNIJKdkXTpC+ZcB6pAC3Q9murzkGeGmgaNVotvQPu1viBCrLX8yCXKRYYR7\nlzuWYfkmJE8Z95NfRuDg/NFVhX90/pwKpP7cEklbGaIAIuSdhmjeTJ9qDjge\nzXk/A6QOJPupMB69gLbMys2wqWSZ0ss1x4QA+ZQY6iJXVuIw3L/IomagJjiP\nSDAdSgnnHpQ1I8f6wHU7237MXomNZTHrPiLPATH0SpaCxWrntc7XVRNEVqAx\nqHzVQBJA7F+nbIiHqIopoPtuKbxhbMmKrKb3pHFIOaCqbJBudE6SCOxCr4MN\nInslBPnv2tLCSj9MuwDRpGLkSZy3apVhDg4q2n++nNjf/0MA6dht/xo2hGQX\nQmqb\r\n=j6Qu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCHjaIdkTQvrZh7VP44CRHhCDs/SFklRdHjAosAtpPmggIhAOJ4RLzJ4wbz+B1vIAt0YHTRcl9eYvYR6zRjjHCnG4N3"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190717_1563321982885_0.9475152114597623"},"_hasShrinkwrap":false},"1.6.8-dev.20190718":{"name":"cherow","version":"1.6.8-dev.20190718","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"3b8d65d5df27fc6e1fb6e4c72ba951c9cb62d135","_id":"cherow@1.6.8-dev.20190718","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-RAKe1x2lEDfRuu+GihpXWo3w/JOP/WioSXxLUSi1TqfhJanyRoVZrg3hJ0xcyWYcX2YA4xBOfZ0g62HJOA3ibw==","shasum":"c2b892f0649cb9e1f1ddf06d0e97c2dee79210fd","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190718.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdL7fxCRA9TVsSAnZWagAAcdkP/jFED1NnLe2bpd+bitv3\n5ikRc+uCnBNCe7az/A5f99KEqSfVCZxBzAldoPTcaSipCBlPtd4ForcciGWM\nJDi4/SOHkqkPH+R+f5x+sXvHaYiSrGvDrJKbv2qM5Lbe+B4oiEbUDYWsTOJU\nVFOIwAAGqj1S6/yQr2XBf9GTZziRVRr00JYKS8ZsTj5yJeUJBpiz6MswO1hg\nZA4HgW2NjMoGWBRHy1dy08bfPkVpaoiTnxoHas8hOg6mpOd9aL55MewbqOQi\nK21VdAP2c75UB3TBzQhNltOUPi7bW6daH1GXSZDAnqy+77mZLNtAjtNT/+B7\nTCTPLj4MMIiW8DFAz07eFs6hYFoiMgB0pXfYFMr9PODoFXRo+26lWNrJsoi/\ngvDyKm2fanrCIFne50alN+Tk0mAuxNcol2nJshhEAiOXphxJH+0CYeC5ZGf9\nTrgJErkvHks33DTo1l45uVn24J6qgMSSEtneSZe0Ykiua1uOml1uZalrHpBV\nQ8hLQrAgUtfCJh9ZcxB+pgFRc80WLo4REN930vbGDGu/KqRGYqqr4xA3Z4VA\nn+7duod/YAK86vpbvHbVfB/NYMouIV4ick5P8VdcQ2ZSEVRPTlLQrwMAsMm0\n3BESIF3g3yM882mRd6kVsQh4mefnXHRGiX8HS4WCjCwKPkGnuAFF6Dy9Fg5i\nZWPc\r\n=WUG8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDSxZmA9ieAEnRdZoi9+boNwdV1UL7Fk3pUH341GffIuAIhAKIkxTy2T3vL24BJDKKcZGSJ/Ynr66ArRxc/C2f0YQjf"}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190718_1563408368945_0.24709604530993357"},"_hasShrinkwrap":false},"1.6.8-dev.20190719":{"name":"cherow","version":"1.6.8-dev.20190719","description":"Fast and lightweight, standard-compliant javascript parser written in ECMAScript","main":"dist/cherow.umd.js","module":"dist/cherow.esm.js","jsnext:main":"dist/cherow.esm.js","browser":"dist/cherow.umd.js","types":"dist/cherow.d.ts","typings":"dist/cherow.d.ts","author":{"name":"KFlash"},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}],"license":"ISC","homepage":"https://github.com/cherow/cherow","repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:watch":"tsc -w","fuzz":"eslump ./test/fuzz/cherow.js .fuzz-output/","lint":"cross-env tslint -p tsconfig.json -t stylish","prettier":"node ./scripts/prettier.js write-changed","prettier-all":"node ./scripts/prettier.js write","bundle":"cross-env rimraf dist && node scripts/bundle.js","bundle:bench":"cross-env rimraf dist && node scripts/bundle.js bench","test":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" mocha \"test/**/*.ts\" -c -R progress -r ts-node/register -r source-map-support/register --recursive --globals expect","test:watch":"npm run test -- --watch --watch-extensions ts","test:verbose":"npm run test -- -R spec","test:watch:verbose":"npm run test:watch -- -R spec","prepare-nightly":"node scripts/bump-dev-version","coverage":"cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test","post_coverage":"cross-env cat ./coverage/lcov.info | coveralls"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.12.18","clean-assert":"^2.0.0","coveralls":"^3.0.2","cross-env":"^5.2.0","eslump":"^2.0.0","husky":"^1.3.1","mocha":"^5.2.0","nyc":"^13.1.0","path":"^0.12.7","prettier":"^1.15.3","rimraf":"^2.6.3","rollup":"^1.1.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-terser":"^4.0.2","rollup-plugin-typescript2":"^0.19.0","source-map-support":"^0.5.10","test262":"git+https://github.com/tc39/test262.git#8ed9947df1c4ea34fa1810067529df0806cc07ad","test262-parser":"^2.0.7","ts-node":"^7.0.1","tsconfig-paths":"^3.7.0","tslint":"^5.12.1","tslint-microsoft-contrib":"^6.0.0","typescript":"^3.2.2","unexpected":"^10.40.2","unicode-12.0.0":"^0.7.9"},"husky":{"hooks":{"pre-commit":"node ./scripts/prettier.js check-changed"}},"readme":"# Cherow\n\n[![NPM version](https://img.shields.io/npm/v/cherow.svg?style=flat-square)](https://www.npmjs.com/package/cherow)\n[![Gitter chat](https://img.shields.io/gitter/room/Cherow/cherow.svg?style=flat-square)](https://gitter.im/cherow/cherow)\n[![CircleCI](https://img.shields.io/circleci/project/github/cherow/cherow/master.svg?style=flat-square)](https://circleci.com/gh/cherow/cherow)\n[![Coverage Status](https://img.shields.io/coveralls/github/cherow/cherow/master.svg?style=flat-square)](https://coveralls.io/github/cherow/cherow?branch=master)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/context:javascript)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/cherow/cherow.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/cherow/cherow/alerts)\n\nA very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability.\n\n## [Demo](https://cherow.github.io/cherow/) and [Benchmark](https://cherow.github.io/cherow/performance/)\n\n## Features\n\n* Conforms to the standard ECMAScript® 2020 [(ECMA-262 10th Edition)](https://tc39.github.io/ecma262/) language specification (*draft*)\n* Support stage 3 proposals via option.\n* Support for parsing with and without web compability (*AnnexB*)\n* Support to only parse [expressions](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions)\n* Experimental feature support via option.\n* Optionally track syntactic node locations\n* Emits an [ESTree-compatible](https://github.com/estree/estree) abstract syntax tree.\n* Very well tested (~25 000 [unit tests](https://github.com/cherow/cherow/tree/master/test) with [full code coverage)](https://coveralls.io/github/cherow/cherow))\n* Supports all module loaders\n* Lightweight - ~72 KB minified\n\n## ESNext features\n\n`Stage 3` features support. These need to be enabled with the `next` option.\n\n* [Import()](https://github.com/tc39/proposal-dynamic-import)\n* [Hashbang Grammar](https://github.com/tc39/proposal-hashbang)\n* [BigInt](https://github.com/tc39/proposal-bigint)\n* [Import.meta](https://github.com/tc39/proposal-import-meta)\n\n## API\n\nCherow generates AST according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either [a script or a module](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-language-scripts-and-modules).\n\nThe `parse` method exposed by Cherow takes an optional `options` object which allows you to specify whether to parse in [`script`](http://www.ecma-international.org/ecma-262/8.0/#sec-parse-script) mode (the default) or in [`module`](http://www.ecma-international.org/ecma-262/8.0/#sec-parsemodule) mode.\n\n\nHere is a quick example to parse a script:\n\n```js\n\ncherow.parseScript('foo = bar');\n\n// or\n\ncherow.parse('x = async() => { for await (x of xs); }');\n\n```\n\nThis will return when serialized in json:\n\n```js\n{\n    body: [{\n        expression: {\n            left: {\n                name: 'x',\n                type: 'Identifier'\n            },\n            operator: '=',\n            right: {\n                async: true,\n                body: {\n                    body: [{\n                        await: true,\n                        body: {\n                            type: 'EmptyStatement',\n                        },\n                        left: {\n                            name: 'x',\n                            type: 'Identifier',\n                        },\n                        right: {\n                            name: 'xs',\n                            type: 'Identifier',\n                        },\n                        type: 'ForOfStatement',\n                    }],\n                    type: 'BlockStatement'\n                },\n                expression: false,\n                generator: false,\n                id: null,\n                params: [],\n                type: 'ArrowFunctionExpression'\n            },\n            type: 'AssignmentExpression'\n        },\n        type: 'ExpressionStatement'\n    }],\n    sourceType: 'script',\n    type: 'Program'\n}\n```\n\nThe API also allows you to use Cherow as a stand-alone  [expression parser](https://tc39.github.io/ecma262/#sec-ecmascript-language-expressions) and let you parse your code in either script or module goal code.\n\n```js\n\ncherow.parseExpression('foo', { ranges: true });\n\n```\n\nThis will return when serialized in json:\n\n```js\n {\n      end: 3,\n      name: 'foo',\n      start: 0,\n      type: 'Identifier'\n    }\n```\n\n## Options\n\nThe second argument allows you to specify various options:\n\n| Option        | Description |\n| ----------- | ------------------------------------------------------------ |\n| `module`          | Enable module syntax |\n| `ranges`          | Append start and end offsets to each node |\n| `globalReturn`    | Allow return in the global scope |\n| `globalAwait`     | Allow await in the global scope |\n| `webcompat`       | Enable web compability (*AnnexB*) |\n| `impliedStrict`   | Enable strict mode initial enforcement |\n| `next`            | Enable stage 3 support (*ESNext*)  |\n| `experimental`    | Enable experimental features    |\n| `parenthesizedExpr` | Enable non-standard parenthesized expression node |\n| `raw`             | Attach raw property to each literal node and identifier node |\n| `directives`      | Enable [directive prologue](https://github.com/danez/estree/blob/directive/es5.md#directive) to each literal node |\n| `onComment`       | Accept either callback or array to collect comment |\n| `onToken`         | Accept either callback or array and returns each found token |\n\n## Experimental features\n\nCherow aim to support the same experimental features as found in V8 when enabling the 'experimental' flag. However. An exception has been made for the\n[numeric separators](https://github.com/tc39/proposal-numeric-separator) proposal. It's currently pending on Stage 2 after being \"*degraded*\" from Stage 3. The future of this proposal seems uncertain at the moment and will *not* be implemented.\n\nAlso the [proposal-decorators](https://github.com/tc39/proposal-decorators) are constantly changing so at current stage this will *not* be implemented.\n\n## Nightly builds\n\nIt's available on NPM.\n\n## Contributing\n\nIf you feel something could've been done better, please do feel free to file a pull request with the changes.\n\nRead our guidelines [here](CONTRIBUTING.md)\n\n## Bug reporting\n\nIf you caught a bug, don't hesitate to report it in the issue tracker. From the moment I respond to you, it will take maximum 60 minutes before the bug is fixed.\n\nNote that I will try to respond to you within one hour. Sometimes it can take a bit longer. I'm not allways online. And if I find out it\nwill take more then 60 minutes to solve your issue, you will be notified.\n\nI know how irritating it can be if you are writing code and encounter bugs in your dependencies. And even more frustrating if you need to wait weeks or days.\n\n\n## Rationale\n\nExisting parsers have many issues with them:\n\n* `Acorn` is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.\n\n* `Esprima` is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.\n\n* `Babylon` is tightly coupled to Babel, and is comparatively very slow.\n\nMost of these parsers would not fare any chance against the official Test262 suite, and fail a substantial number of them.\n\nWe figured we could *try* do better. *We* are used in plural form because Cherow is developed by a main developer and two\nothers \"*behind the scenes*\" that contributes with their knowledge whenever it's necessary.\n\n---\n\nCross-browser testing provided by:\n\n<a href=\"http://browserstack.com\"><img height=\"70\" src=\"https://i.imgur.com/O9USsNQ.png\" alt=\"BrowserStack\"></a>\n","readmeFilename":"README.md","gitHead":"05dbdc3064b6f33199a292f988bc3af243652b0e","_id":"cherow@1.6.8-dev.20190719","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"kennyf","email":"kfrachelle123@gmail.com"},"dist":{"integrity":"sha512-3/IFoV/ZeXosC8eYPzjcIUr6HX0yeL8POD0EtoDh4gXKlejZU1XJjDA43/EnewbkpeyIlxBo26m2oHQ0IybIhw==","shasum":"e1a610a8a1174148210e9b29aed4c6ee152a699e","tarball":"https://registry.npmjs.org/cherow/-/cherow-1.6.8-dev.20190719.tgz","fileCount":84,"unpackedSize":2162752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdMQldCRA9TVsSAnZWagAAAeEP/03mw2U5C4OxWeSIYpH6\nNcKKxNXT8fZHXth0NQFihR+rcXgJhJT3POPzJedpHvXpQkkBGtn8PxSUHm0B\nk3BJXfCIxf/8Fzny/dmt+Zz2ky7pxVQJE2xijVinQyBoP76+Rdtpk7v0kpnF\nI5dbfR4aBPtMIIsNFKG+tHTLFz7Uq0mN/LTZCPaNWmAXnNE/eyCdPUXwe7ek\nSdWrjAtHpSV9GKaq9wSGL0OusdFn23l4xq6/wvRi0k/+KCbWA6Tk3z2797t4\ndRJvbOTLt9+MAC1XhKSRE61QnHZh1fng8EfIUxGewGYU0ah/YoOyKpV7iThc\nqfyviWIsmtDowAUCLUnhftsw3c2sueJV2/lqjvzEton2mI3mz6sqSkhO+UH4\njDtIcx9wNEya4FGKOa7gJ3bb8a+/gQEJvfJzhQQf4E/kMCqGFvDhY80kqP7R\nGDa4i2dOgO1M89PmIM7LHP3qIu97HwbhNwKm9Tnjcd+eWcDyVadEii59wths\nOFsNreIE9lcR9sevyWZLbVtDo+qxiYuD47lhh0jqnvWQ3/bLw6vwYgLnT/Fb\nuMAe6EKcyohX7g/pieIHJURYGFJ2S6hgaVNTaemgGPE+M9VxYJVqsoGqnYCY\ncme3hQRPy/Z9JsFBOGPeo3qpbVHnK6pToIy4AkTFiVnAWMwx9oSMdTI89Z05\nTdPn\r\n=YXRi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFqpzLyEk1bRLBWzMfFyp24VI8xVi1Vj255HTQ1sFwG6AiAl6Y2dOk+dIZlKqNKA4srjNlu9gYOekgQnhG4iIdtr1Q=="}]},"maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cherow_1.6.8-dev.20190719_1563494747910_0.8406897859969351"},"_hasShrinkwrap":false}},"readme":"","maintainers":[{"email":"fred@avurad.nl","name":"fkleuver"},{"email":"g-plane@hotmail.com","name":"gplane"},{"email":"kfrachelle123@gmail.com","name":"kennyf"}],"time":{"modified":"2022-06-13T05:57:03.173Z","created":"2017-09-14T06:45:25.041Z","0.1.0":"2017-09-14T06:45:25.041Z","0.1.1":"2017-09-14T11:43:16.557Z","0.0.2":"2017-09-15T06:26:56.882Z","0.0.3":"2017-09-15T06:29:30.152Z","0.0.4":"2017-09-15T11:45:22.557Z","0.0.5":"2017-09-15T15:11:46.818Z","0.0.6":"2017-09-15T22:46:25.532Z","0.0.7":"2017-09-16T03:08:13.733Z","0.0.8":"2017-09-16T14:51:58.324Z","0.0.9":"2017-09-17T12:45:51.436Z","0.0.10":"2017-09-17T12:47:27.680Z","0.0.11":"2017-09-18T03:49:36.828Z","0.0.12":"2017-09-19T05:57:58.950Z","0.0.13":"2017-09-20T01:26:14.687Z","0.0.14":"2017-09-20T09:49:06.726Z","0.0.15":"2017-09-20T14:23:30.155Z","0.0.16":"2017-09-20T14:27:30.675Z","0.0.17":"2017-09-20T14:29:49.803Z","0.0.18":"2017-09-21T01:10:48.532Z","0.0.19":"2017-09-21T01:12:25.033Z","0.0.20":"2017-09-21T08:58:24.865Z","0.0.21":"2017-09-21T12:23:17.579Z","0.0.22":"2017-09-21T14:27:43.041Z","0.0.23":"2017-09-22T06:47:22.992Z","0.0.24":"2017-09-22T06:49:01.134Z","0.0.25":"2017-09-22T09:59:11.538Z","0.0.26":"2017-09-22T11:57:25.643Z","0.0.28":"2017-09-23T03:36:19.954Z","0.0.29":"2017-09-23T04:32:00.117Z","0.0.30":"2017-09-23T08:13:17.819Z","0.0.32":"2017-09-23T13:59:51.322Z","0.0.33":"2017-09-24T02:13:06.155Z","0.0.34":"2017-09-24T02:13:49.404Z","0.0.35":"2017-09-24T12:02:43.107Z","0.0.36":"2017-09-24T14:56:43.328Z","0.0.37":"2017-09-24T16:08:25.383Z","0.1.2":"2017-09-25T00:47:38.519Z","0.1.3":"2017-09-25T03:03:36.262Z","0.1.4":"2017-09-25T11:23:49.702Z","0.1.5":"2017-09-25T14:04:15.780Z","0.1.6":"2017-09-25T14:46:33.656Z","0.1.7":"2017-09-25T15:27:16.446Z","0.2.0":"2017-09-25T23:05:38.555Z","0.2.1":"2017-09-26T11:48:43.329Z","0.2.3":"2017-09-26T13:31:54.059Z","0.2.4":"2017-09-26T14:03:36.994Z","0.2.5":"2017-09-26T15:05:30.872Z","0.2.6":"2017-09-26T16:48:40.533Z","0.2.7":"2017-09-26T23:40:32.455Z","0.2.8":"2017-09-27T05:21:05.139Z","0.2.9":"2017-09-27T05:52:19.477Z","0.2.91":"2017-09-27T07:01:06.386Z","0.3.0":"2017-09-27T07:28:08.802Z","0.3.1":"2017-09-27T10:55:51.933Z","0.3.2":"2017-09-27T12:40:32.473Z","0.3.3":"2017-09-28T00:44:59.718Z","0.3.4":"2017-09-28T02:30:31.954Z","0.3.5":"2017-09-28T04:35:15.184Z","0.3.6":"2017-09-28T08:55:21.859Z","0.3.7":"2017-09-28T13:08:46.982Z","0.3.8":"2017-09-28T13:43:22.491Z","0.3.9":"2017-09-29T06:57:53.858Z","0.4.0":"2017-09-29T13:48:10.391Z","0.4.2":"2017-09-29T16:35:08.749Z","0.4.3":"2017-09-30T00:12:40.462Z","0.4.4":"2017-09-30T02:14:57.985Z","0.4.5":"2017-09-30T12:32:37.399Z","0.4.6":"2017-09-30T15:53:43.351Z","0.4.7":"2017-10-01T03:46:10.602Z","0.4.8":"2017-10-01T07:57:17.788Z","0.4.9":"2017-10-01T15:18:13.901Z","0.5.0":"2017-10-01T16:18:25.756Z","0.5.1":"2017-10-01T23:32:44.984Z","0.5.2":"2017-10-02T02:02:02.697Z","0.5.3":"2017-10-03T04:27:17.967Z","0.5.4":"2017-10-03T08:49:12.453Z","0.5.5":"2017-10-03T11:23:18.169Z","0.5.6":"2017-10-03T13:15:01.069Z","0.5.7":"2017-10-03T15:25:50.047Z","0.5.8":"2017-10-04T01:58:35.909Z","0.6.0":"2017-10-12T04:37:12.760Z","0.6.1":"2017-10-12T09:50:42.185Z","0.6.2":"2017-10-12T10:27:50.989Z","0.6.3":"2017-10-12T10:45:21.792Z","0.6.4":"2017-10-12T12:29:17.132Z","0.6.5":"2017-10-12T12:53:50.412Z","0.6.6":"2017-10-12T14:43:01.829Z","0.6.7":"2017-10-12T23:18:46.408Z","0.6.8":"2017-10-13T01:11:35.651Z","0.6.9":"2017-10-13T01:50:50.567Z","0.6.10":"2017-10-13T03:11:31.714Z","0.6.11":"2017-10-13T12:34:49.235Z","0.7.0":"2017-10-13T12:45:15.494Z","0.7.1":"2017-10-13T14:50:09.079Z","0.7.2":"2017-10-13T16:32:14.725Z","0.7.3":"2017-10-14T01:07:08.356Z","0.7.4":"2017-10-14T01:12:56.545Z","0.7.5":"2017-10-14T05:07:58.280Z","0.7.6":"2017-10-14T06:42:30.586Z","0.7.7":"2017-10-14T13:41:07.578Z","0.7.8":"2017-10-14T16:00:58.982Z","0.7.9":"2017-10-15T08:13:32.240Z","0.8.0":"2017-10-15T15:47:31.939Z","0.8.1":"2017-10-16T10:33:39.353Z","0.8.2":"2017-10-16T12:48:47.905Z","0.8.3":"2017-10-16T14:27:20.099Z","0.8.4":"2017-10-17T01:00:04.467Z","0.8.5":"2017-10-17T02:39:57.747Z","0.8.6":"2017-10-17T09:45:20.440Z","0.8.7":"2017-10-17T14:22:57.461Z","0.8.8":"2017-10-17T22:49:32.368Z","0.8.9":"2017-10-18T00:08:34.587Z","0.8.12":"2017-10-18T02:24:57.996Z","0.9.0":"2017-10-18T04:22:49.745Z","0.9.1":"2017-10-18T07:23:31.179Z","0.9.2":"2017-10-18T12:36:45.592Z","0.9.3":"2017-10-18T12:48:21.382Z","0.9.4":"2017-10-18T13:36:53.419Z","0.9.5":"2017-10-19T00:33:36.217Z","0.9.6":"2017-10-19T09:29:12.083Z","0.9.7":"2017-10-19T10:27:08.735Z","0.9.8":"2017-10-19T12:42:09.931Z","0.9.9":"2017-10-22T05:00:39.609Z","0.10.0":"2017-10-23T11:38:51.066Z","0.10.1":"2017-10-23T13:38:41.668Z","0.10.2":"2017-10-23T23:14:58.138Z","0.10.3":"2017-10-24T11:48:49.125Z","0.10.4":"2017-10-24T23:56:45.157Z","0.10.5":"2017-10-25T00:22:08.588Z","0.10.6":"2017-10-25T07:19:05.749Z","0.10.7":"2017-10-25T13:36:29.732Z","0.10.8":"2017-10-28T09:03:07.422Z","0.10.9":"2017-10-28T11:44:37.887Z","0.10.10":"2017-10-28T21:57:07.191Z","0.10.11":"2017-10-30T01:40:09.788Z","0.11.0":"2017-10-30T09:55:43.888Z","0.11.1":"2017-10-31T23:51:45.067Z","0.11.2":"2017-11-01T04:30:54.736Z","0.11.3":"2017-11-02T12:40:45.192Z","0.11.4":"2017-11-02T12:57:30.025Z","0.11.5":"2017-11-03T03:34:47.288Z","0.11.6":"2017-11-03T21:27:51.718Z","0.11.7":"2017-11-04T11:46:24.731Z","0.11.8":"2017-11-04T12:02:56.552Z","0.11.9":"2017-11-04T16:36:53.957Z","0.12.0":"2017-11-05T02:42:56.718Z","0.12.1":"2017-11-05T23:38:08.263Z","0.12.2":"2017-11-06T07:46:07.409Z","0.12.3":"2017-11-06T08:15:23.694Z","0.12.4":"2017-11-06T14:19:32.564Z","0.12.5":"2017-11-07T00:34:47.709Z","0.12.6":"2017-11-07T01:14:54.324Z","0.12.9":"2017-11-07T12:22:22.766Z","0.13.0":"2017-11-08T00:46:59.769Z","0.13.1":"2017-11-08T07:21:07.738Z","0.13.2":"2017-11-09T00:03:18.921Z","0.13.3":"2017-11-09T00:40:27.016Z","0.13.4":"2017-11-09T02:34:52.775Z","0.13.5":"2017-11-09T11:45:19.920Z","0.13.6":"2017-11-09T13:08:31.807Z","0.13.7":"2017-11-09T13:42:46.399Z","0.13.8":"2017-11-11T00:17:15.804Z","0.13.9":"2017-11-13T14:36:14.333Z","0.13.10":"2017-11-15T04:35:46.980Z","0.14.0":"2017-11-15T07:00:36.607Z","0.14.1":"2017-11-15T22:48:45.919Z","0.14.2":"2017-11-16T01:29:28.554Z","0.14.3":"2017-11-16T04:15:36.974Z","0.14.4":"2017-11-16T13:43:44.587Z","0.14.5":"2017-11-17T03:49:45.728Z","0.14.6":"2017-11-18T11:48:14.763Z","0.14.7":"2017-11-18T13:50:27.579Z","0.14.8":"2017-11-19T01:10:28.149Z","0.15.0":"2017-11-19T12:03:54.068Z","0.15.1":"2017-11-19T12:54:42.165Z","0.15.2":"2017-11-19T13:52:07.807Z","0.15.3":"2017-11-20T00:12:57.032Z","0.15.5":"2017-11-23T00:33:01.941Z","0.15.6":"2017-11-23T14:26:47.002Z","0.15.7":"2017-11-24T15:31:40.287Z","0.15.8":"2017-11-25T07:25:31.927Z","0.15.9":"2017-12-01T00:14:33.931Z","0.15.10":"2017-12-06T14:40:28.284Z","0.15.11":"2017-12-07T02:06:21.432Z","0.16.1":"2017-12-09T12:32:29.943Z","0.16.2":"2017-12-10T00:40:23.331Z","0.16.3":"2017-12-10T04:33:48.345Z","0.16.4":"2017-12-10T05:00:00.432Z","0.16.5":"2017-12-10T07:15:55.145Z","0.16.6":"2017-12-10T10:35:34.859Z","0.16.7":"2017-12-11T09:25:27.620Z","0.17.0":"2017-12-12T06:18:23.998Z","0.17.1":"2017-12-12T07:25:12.418Z","0.17.2":"2017-12-12T09:46:34.306Z","0.17.3":"2017-12-12T12:42:41.226Z","0.17.4":"2017-12-12T23:55:49.401Z","0.17.5":"2017-12-13T06:02:07.311Z","0.17.6":"2017-12-13T11:45:29.849Z","0.17.7":"2017-12-13T14:38:26.650Z","0.17.8":"2017-12-14T08:21:07.033Z","0.17.9":"2017-12-15T12:12:21.782Z","0.17.10":"2017-12-16T09:38:46.176Z","0.17.11":"2017-12-16T09:48:32.882Z","0.17.12":"2017-12-18T00:25:41.411Z","0.18.0":"2017-12-18T13:52:42.672Z","0.18.1":"2017-12-19T08:51:18.079Z","0.18.2":"2017-12-19T13:46:39.363Z","0.18.3":"2017-12-20T00:33:13.723Z","0.18.4":"2017-12-20T01:35:50.846Z","0.18.5":"2017-12-20T10:31:05.850Z","0.18.6":"2017-12-21T01:08:47.973Z","0.18.7":"2017-12-21T10:19:27.997Z","0.18.8":"2017-12-22T07:47:57.531Z","0.18.9":"2017-12-23T13:47:58.771Z","0.18.10":"2017-12-24T08:22:54.131Z","0.18.11":"2017-12-24T11:20:55.404Z","0.18.12":"2017-12-27T09:38:00.333Z","0.19.0":"2017-12-27T12:30:00.240Z","0.19.1":"2017-12-27T13:06:37.582Z","0.19.2":"2017-12-27T15:01:07.328Z","0.19.3":"2017-12-27T23:25:07.747Z","0.20.0":"2017-12-28T02:01:28.599Z","0.20.1":"2017-12-28T02:07:13.953Z","0.20.2":"2017-12-28T16:35:42.355Z","0.20.3":"2017-12-29T02:49:49.493Z","0.20.4":"2017-12-30T01:12:20.749Z","0.20.5":"2017-12-30T01:22:51.863Z","0.20.6":"2017-12-30T15:30:32.954Z","0.21.0":"2017-12-31T04:22:17.376Z","0.21.1":"2017-12-31T04:59:28.324Z","0.21.2":"2018-01-01T05:59:36.954Z","0.21.3":"2018-01-01T13:21:23.427Z","0.21.4":"2018-01-01T15:15:26.024Z","0.21.5":"2018-01-02T11:19:18.681Z","0.22.0":"2018-01-03T01:14:05.522Z","0.22.1":"2018-01-03T03:33:55.076Z","0.22.2":"2018-01-03T04:34:04.478Z","0.22.3":"2018-01-03T07:13:45.253Z","0.22.4":"2018-01-03T12:08:59.992Z","0.22.5":"2018-01-03T13:40:45.750Z","0.22.6":"2018-01-04T12:36:55.873Z","0.22.7":"2018-01-04T13:58:14.414Z","0.22.8":"2018-01-05T02:33:36.189Z","0.22.9":"2018-01-05T03:31:45.744Z","0.23.0":"2018-01-05T05:33:50.971Z","0.23.1":"2018-01-05T12:19:38.556Z","0.23.2":"2018-01-05T14:36:51.859Z","0.23.3":"2018-01-06T01:35:12.964Z","0.23.4":"2018-01-06T09:36:34.821Z","1.0.0-beta":"2018-02-02T02:56:02.002Z","1.0.0-beta1":"2018-02-02T04:35:18.709Z","1.0.0-beta.1":"2018-02-02T05:09:43.910Z","1.0.0-beta.2":"2018-02-02T07:14:55.966Z","1.0.0-beta.3":"2018-02-02T09:00:08.304Z","1.0.0-beta.4":"2018-02-02T10:29:35.822Z","1.0.0":"2018-02-03T13:20:17.788Z","1.0.1":"2018-02-03T14:53:27.939Z","1.0.2":"2018-02-03T16:56:44.258Z","1.0.3":"2018-02-04T09:45:16.144Z","1.0.5":"2018-02-05T08:47:03.050Z","1.0.6":"2018-02-05T14:49:52.981Z","1.0.7":"2018-02-06T10:05:47.035Z","1.0.8":"2018-02-06T10:06:57.851Z","1.0.9":"2018-02-06T15:09:24.360Z","1.0.10":"2018-02-07T02:57:51.399Z","1.0.11":"2018-02-07T02:59:04.692Z","1.0.12":"2018-02-08T01:34:22.403Z","1.1.0":"2018-02-09T01:59:08.588Z","1.1.1":"2018-02-09T13:29:33.807Z","1.1.2":"2018-02-10T11:42:05.360Z","1.1.3":"2018-02-10T14:48:57.284Z","1.1.4":"2018-02-12T23:36:40.198Z","1.1.5":"2018-02-12T23:39:11.290Z","1.1.6":"2018-02-16T00:06:47.073Z","1.1.7":"2018-02-17T14:39:53.007Z","1.1.8":"2018-02-18T22:17:41.112Z","1.1.9":"2018-02-19T09:36:58.810Z","1.1.10":"2018-02-19T09:42:10.881Z","1.1.11":"2018-02-20T13:31:10.418Z","1.2.1":"2018-02-23T12:48:58.329Z","1.2.2":"2018-02-24T11:01:46.116Z","1.2.3":"2018-02-26T04:54:56.512Z","1.2.4":"2018-03-02T00:29:14.120Z","1.2.5":"2018-03-03T23:04:49.400Z","1.2.6":"2018-03-04T00:27:46.345Z","1.2.7":"2018-03-04T05:45:48.489Z","1.2.8":"2018-03-05T10:36:56.309Z","1.2.9":"2018-03-07T03:00:10.971Z","1.3.0":"2018-03-07T05:27:01.665Z","1.3.2":"2018-03-19T16:06:15.992Z","1.3.3":"2018-03-19T16:18:31.142Z","1.3.4":"2018-03-19T17:39:10.479Z","1.3.5":"2018-03-19T17:49:32.591Z","1.3.6":"2018-03-19T20:26:10.065Z","1.3.7":"2018-03-20T01:23:51.405Z","1.3.8":"2018-03-20T09:22:31.232Z","1.3.10":"2018-03-28T05:49:03.659Z","5.4.2018724":"2018-04-08T12:37:34.123Z","4.9.2018924":"2018-04-08T12:40:10.551Z","4.10.20181123":"2018-04-09T03:29:15.974Z","4.10.2018126":"2018-04-09T05:32:56.760Z","4.10.2018704":"2018-04-09T11:03:40.206Z","4.11.2018715":"2018-04-09T23:22:53.674Z","4.11.2018121":"2018-04-10T05:28:10.313Z","4.11.2018950":"2018-04-10T13:55:41.962Z","4.12.2018900":"2018-04-11T13:10:17.756Z","4.12.20181031":"2018-04-11T14:37:09.832Z","4.12.20181101":"2018-04-11T15:07:36.576Z","1.4.0":"2018-04-17T05:21:16.259Z","1.4.1":"2018-04-17T07:46:04.235Z","1.4.2":"2018-04-17T09:50:46.905Z","1.4.3":"2018-04-19T01:28:20.962Z","1.4.4":"2018-04-19T03:35:29.631Z","1.4.5":"2018-04-20T15:27:10.313Z","1.4.6":"2018-04-21T14:45:14.711Z","1.4.7":"2018-04-22T08:48:58.088Z","1.4.8":"2018-04-22T13:37:22.100Z","1.4.9":"2018-04-22T15:30:32.260Z","1.4.10":"2018-04-23T03:07:40.647Z","1.4.12":"2018-04-24T23:53:06.593Z","1.4.13":"2018-04-24T23:57:52.291Z","1.4.14":"2018-04-26T15:32:40.529Z","1.4.15":"2018-04-26T18:40:07.090Z","1.4.16":"2018-04-29T03:36:09.497Z","1.5.0":"2018-05-02T08:36:23.121Z","1.5.1":"2018-05-03T21:32:01.190Z","1.5.2":"2018-05-04T01:16:43.495Z","1.5.3":"2018-05-04T05:54:31.645Z","1.5.4":"2018-05-04T07:29:01.718Z","1.5.5":"2018-05-07T03:14:44.541Z","1.5.6":"2018-05-07T03:32:56.312Z","1.5.7":"2018-05-07T03:40:14.544Z","1.5.8":"2018-05-07T10:07:32.808Z","1.6.0":"2018-05-09T23:50:42.165Z","1.6.1":"2018-05-10T00:30:48.678Z","1.6.2":"2018-05-14T03:24:13.005Z","1.6.3":"2018-05-14T23:34:19.521Z","1.6.4":"2018-05-14T23:41:54.333Z","1.6.5":"2018-05-15T10:41:26.243Z","1.6.6":"2018-05-23T07:34:46.934Z","1.6.7":"2018-06-08T21:16:50.925Z","1.6.8":"2018-06-08T21:28:24.209Z","1.6.9":"2018-12-19T01:31:06.832Z","1.6.8-dev.20190105":"2019-01-05T01:18:25.402Z","1.6.8-dev.20190106":"2019-01-06T00:07:46.186Z","1.6.8-dev.20190107":"2019-01-07T00:04:30.744Z","1.6.8-dev.20190108":"2019-01-08T00:04:16.197Z","1.6.8-dev.20190109":"2019-01-09T00:05:54.768Z","1.6.8-dev.20190110":"2019-01-10T00:04:02.083Z","1.6.8-dev.20190112":"2019-01-12T00:03:45.361Z","1.6.8-dev.20190113":"2019-01-13T00:05:18.192Z","1.6.8-dev.20190114":"2019-01-14T00:03:50.652Z","1.6.8-dev.20190115":"2019-01-15T00:03:56.498Z","1.6.8-dev.20190116":"2019-01-16T00:03:37.214Z","1.6.8-dev.20190117":"2019-01-17T00:04:30.646Z","1.6.8-dev.20190118":"2019-01-18T00:12:39.544Z","1.6.8-dev.20190119":"2019-01-19T00:03:37.070Z","1.6.8-dev.20190121":"2019-01-21T00:04:54.126Z","1.6.8-dev.20190122":"2019-01-22T00:04:10.133Z","1.6.8-dev.20190123":"2019-01-23T00:04:26.022Z","1.6.8-dev.20190124":"2019-01-24T00:04:10.382Z","1.6.8-dev.20190125":"2019-01-25T00:04:48.072Z","1.6.8-dev.20190126":"2019-01-26T00:03:43.759Z","1.6.8-dev.20190127":"2019-01-27T00:06:46.312Z","1.6.8-dev.20190128":"2019-01-28T00:08:28.234Z","1.6.8-dev.20190129":"2019-01-29T00:04:14.719Z","1.6.8-dev.20190130":"2019-01-30T00:03:45.035Z","1.6.8-dev.20190131":"2019-01-31T00:04:27.889Z","1.6.8-dev.20190201":"2019-02-01T00:03:57.729Z","1.6.8-dev.20190202":"2019-02-02T00:03:24.654Z","1.6.8-dev.20190203":"2019-02-03T00:05:51.656Z","1.6.8-dev.20190204":"2019-02-04T00:04:37.071Z","1.6.8-dev.20190205":"2019-02-05T00:03:59.815Z","1.6.8-dev.20190206":"2019-02-06T00:04:37.910Z","1.6.8-dev.20190207":"2019-02-07T00:04:54.740Z","1.6.8-dev.20190208":"2019-02-08T00:03:56.813Z","1.6.8-dev.20190209":"2019-02-09T00:04:20.754Z","1.6.8-dev.20190211":"2019-02-11T00:09:25.905Z","1.6.8-dev.20190212":"2019-02-12T00:03:55.142Z","1.6.8-dev.20190213":"2019-02-13T00:03:41.239Z","1.6.8-dev.20190214":"2019-02-14T00:03:43.691Z","1.6.8-dev.20190215":"2019-02-15T00:05:30.030Z","1.6.8-dev.20190216":"2019-02-16T00:03:55.000Z","1.6.8-dev.20190217":"2019-02-17T00:06:14.916Z","1.6.8-dev.20190218":"2019-02-18T00:09:08.434Z","1.6.8-dev.20190219":"2019-02-19T00:04:03.000Z","1.6.8-dev.20190220":"2019-02-20T00:04:48.979Z","1.6.8-dev.20190221":"2019-02-21T00:04:41.795Z","1.6.8-dev.20190222":"2019-02-22T00:05:03.672Z","1.6.8-dev.20190223":"2019-02-23T00:04:02.223Z","1.6.8-dev.20190224":"2019-02-24T00:06:12.125Z","1.6.8-dev.20190225":"2019-02-25T00:05:54.824Z","1.6.8-dev.20190226":"2019-02-26T00:07:14.729Z","1.6.8-dev.20190227":"2019-02-27T00:05:17.560Z","1.6.8-dev.20190228":"2019-02-28T00:04:50.137Z","1.6.8-dev.20190301":"2019-03-01T00:03:42.055Z","1.6.8-dev.20190302":"2019-03-02T00:04:44.995Z","1.6.8-dev.20190303":"2019-03-03T00:09:01.758Z","1.6.8-dev.20190304":"2019-03-04T00:05:11.237Z","1.6.8-dev.20190305":"2019-03-05T00:04:14.467Z","1.6.8-dev.20190306":"2019-03-06T00:04:38.935Z","1.6.8-dev.20190307":"2019-03-07T00:04:00.418Z","1.6.8-dev.20190308":"2019-03-08T00:05:52.770Z","1.6.8-dev.20190309":"2019-03-09T00:04:14.377Z","1.6.8-dev.20190310":"2019-03-10T00:05:23.766Z","1.6.8-dev.20190311":"2019-03-11T00:04:49.279Z","1.6.8-dev.20190312":"2019-03-12T00:03:27.454Z","1.6.8-dev.20190313":"2019-03-13T00:04:09.863Z","1.6.8-dev.20190314":"2019-03-14T00:06:01.559Z","1.6.8-dev.20190315":"2019-03-15T00:04:49.384Z","1.6.8-dev.20190316":"2019-03-16T00:04:26.042Z","1.6.8-dev.20190317":"2019-03-17T00:06:40.273Z","1.6.8-dev.20190318":"2019-03-18T00:06:40.392Z","1.6.8-dev.20190319":"2019-03-19T00:04:24.778Z","1.6.8-dev.20190320":"2019-03-20T00:04:21.934Z","1.6.8-dev.20190321":"2019-03-21T00:04:10.226Z","1.6.8-dev.20190322":"2019-03-22T00:04:40.957Z","1.6.8-dev.20190323":"2019-03-23T00:03:52.444Z","1.6.8-dev.20190324":"2019-03-24T00:11:29.710Z","1.6.8-dev.20190325":"2019-03-25T00:04:40.752Z","1.6.8-dev.20190326":"2019-03-26T00:04:30.887Z","1.6.8-dev.20190327":"2019-03-27T01:21:43.547Z","1.6.8-dev.20190328":"2019-03-28T00:04:57.494Z","1.6.8-dev.20190329":"2019-03-29T00:05:10.371Z","1.6.8-dev.20190330":"2019-03-30T00:04:05.045Z","1.6.8-dev.20190331":"2019-03-31T00:05:36.850Z","1.6.8-dev.20190401":"2019-04-01T00:03:58.417Z","1.6.8-dev.20190402":"2019-04-02T00:07:08.115Z","1.6.8-dev.20190403":"2019-04-03T00:14:12.995Z","1.6.8-dev.20190404":"2019-04-04T00:05:25.169Z","1.6.8-dev.20190405":"2019-04-05T01:17:38.713Z","1.6.8-dev.20190406":"2019-04-06T00:19:37.783Z","1.6.8-dev.20190407":"2019-04-07T00:05:30.981Z","1.6.8-dev.20190408":"2019-04-08T00:05:12.663Z","1.6.8-dev.20190409":"2019-04-09T00:04:34.609Z","1.6.8-dev.20190410":"2019-04-10T00:04:56.018Z","1.6.8-dev.20190411":"2019-04-11T00:04:49.668Z","1.6.8-dev.20190412":"2019-04-12T00:05:15.445Z","1.6.8-dev.20190413":"2019-04-13T00:04:57.475Z","1.6.8-dev.20190414":"2019-04-14T00:08:45.135Z","1.6.8-dev.20190415":"2019-04-15T00:04:52.970Z","1.6.8-dev.20190416":"2019-04-16T00:04:58.607Z","1.6.8-dev.20190417":"2019-04-17T00:04:55.151Z","1.6.8-dev.20190418":"2019-04-18T00:04:15.998Z","1.6.8-dev.20190419":"2019-04-19T00:05:17.131Z","1.6.8-dev.20190420":"2019-04-20T00:04:22.126Z","1.6.8-dev.20190421":"2019-04-21T00:04:40.579Z","1.6.8-dev.20190422":"2019-04-22T00:06:52.980Z","1.6.8-dev.20190423":"2019-04-23T00:06:12.806Z","1.6.8-dev.20190424":"2019-04-24T00:04:05.179Z","1.6.8-dev.20190425":"2019-04-25T00:04:16.610Z","1.6.8-dev.20190426":"2019-04-26T00:04:53.847Z","1.6.8-dev.20190427":"2019-04-27T00:03:50.068Z","1.6.8-dev.20190428":"2019-04-28T00:06:57.950Z","1.6.8-dev.20190429":"2019-04-29T00:06:40.003Z","1.6.8-dev.20190430":"2019-04-30T00:04:59.679Z","1.6.8-dev.20190501":"2019-05-01T00:05:05.551Z","1.6.8-dev.20190502":"2019-05-02T00:04:47.380Z","1.6.8-dev.20190503":"2019-05-03T00:05:37.379Z","1.6.8-dev.20190504":"2019-05-04T00:04:08.373Z","1.6.8-dev.20190505":"2019-05-05T00:06:50.709Z","1.6.8-dev.20190506":"2019-05-06T00:04:22.463Z","1.6.8-dev.20190507":"2019-05-07T00:05:14.609Z","1.6.8-dev.20190508":"2019-05-08T00:09:34.913Z","1.6.8-dev.20190509":"2019-05-09T00:06:29.957Z","1.6.8-dev.20190510":"2019-05-10T00:04:31.737Z","1.6.8-dev.20190511":"2019-05-11T00:05:21.361Z","1.6.8-dev.20190512":"2019-05-12T00:06:30.221Z","1.6.8-dev.20190513":"2019-05-13T00:04:13.208Z","1.6.8-dev.20190514":"2019-05-14T00:05:34.232Z","1.6.8-dev.20190515":"2019-05-15T00:05:28.264Z","1.6.8-dev.20190516":"2019-05-16T00:06:45.968Z","1.6.8-dev.20190517":"2019-05-17T00:04:58.673Z","1.6.8-dev.20190518":"2019-05-18T00:05:30.654Z","1.6.8-dev.20190519":"2019-05-19T00:07:54.481Z","1.6.8-dev.20190520":"2019-05-20T00:04:56.795Z","1.6.8-dev.20190521":"2019-05-21T00:06:12.974Z","1.6.8-dev.20190522":"2019-05-22T00:05:00.956Z","1.6.8-dev.20190523":"2019-05-23T00:04:50.598Z","1.6.8-dev.20190524":"2019-05-24T00:05:16.992Z","1.6.8-dev.20190525":"2019-05-25T00:04:30.083Z","1.6.8-dev.20190526":"2019-05-26T00:05:58.517Z","1.6.8-dev.20190527":"2019-05-27T00:03:58.810Z","1.6.8-dev.20190528":"2019-05-28T00:08:22.355Z","1.6.8-dev.20190529":"2019-05-29T00:04:51.422Z","1.6.8-dev.20190530":"2019-05-30T00:04:25.646Z","1.6.8-dev.20190531":"2019-05-31T00:03:45.559Z","1.6.8-dev.20190601":"2019-06-01T00:04:08.347Z","1.6.8-dev.20190602":"2019-06-02T00:04:38.384Z","1.6.8-dev.20190603":"2019-06-03T00:03:53.781Z","1.6.8-dev.20190604":"2019-06-04T00:04:11.862Z","1.6.8-dev.20190605":"2019-06-05T00:05:00.777Z","1.6.8-dev.20190606":"2019-06-06T00:05:51.389Z","1.6.8-dev.20190607":"2019-06-07T00:05:33.470Z","1.6.8-dev.20190608":"2019-06-08T00:04:48.091Z","1.6.8-dev.20190609":"2019-06-09T00:13:38.046Z","1.6.8-dev.20190610":"2019-06-10T00:03:47.291Z","1.6.8-dev.20190611":"2019-06-11T00:04:42.001Z","1.6.8-dev.20190612":"2019-06-12T00:04:51.708Z","1.6.8-dev.20190613":"2019-06-13T00:05:00.627Z","1.6.8-dev.20190614":"2019-06-14T00:04:31.936Z","1.6.8-dev.20190615":"2019-06-15T00:04:17.501Z","1.6.8-dev.20190616":"2019-06-16T00:08:07.151Z","1.6.8-dev.20190617":"2019-06-17T00:04:09.272Z","1.6.8-dev.20190618":"2019-06-18T00:04:47.786Z","1.6.8-dev.20190619":"2019-06-19T00:05:47.693Z","1.6.8-dev.20190620":"2019-06-20T00:05:07.175Z","1.6.8-dev.20190621":"2019-06-21T00:04:39.832Z","1.6.8-dev.20190622":"2019-06-22T00:05:48.383Z","1.6.8-dev.20190623":"2019-06-23T00:14:49.084Z","1.6.8-dev.20190624":"2019-06-24T00:08:04.937Z","1.6.8-dev.20190625":"2019-06-25T00:06:52.783Z","1.6.8-dev.20190626":"2019-06-26T00:04:28.212Z","1.6.8-dev.20190627":"2019-06-27T00:03:57.218Z","1.6.8-dev.20190628":"2019-06-28T00:04:03.487Z","1.6.8-dev.20190629":"2019-06-29T00:04:39.130Z","1.6.8-dev.20190630":"2019-06-30T00:08:07.647Z","1.6.8-dev.20190701":"2019-07-01T00:04:48.113Z","1.6.8-dev.20190702":"2019-07-02T00:05:39.912Z","1.6.8-dev.20190703":"2019-07-03T00:04:46.667Z","1.6.8-dev.20190704":"2019-07-04T00:05:44.397Z","1.6.8-dev.20190705":"2019-07-05T00:09:00.475Z","1.6.8-dev.20190706":"2019-07-06T00:07:31.085Z","1.6.8-dev.20190707":"2019-07-07T00:06:12.753Z","1.6.8-dev.20190708":"2019-07-08T00:04:33.000Z","1.6.8-dev.20190709":"2019-07-09T00:05:25.978Z","1.6.8-dev.20190710":"2019-07-10T00:05:55.004Z","1.6.8-dev.20190711":"2019-07-11T00:05:25.905Z","1.6.8-dev.20190712":"2019-07-12T00:05:02.523Z","1.6.8-dev.20190713":"2019-07-13T00:09:06.972Z","1.6.8-dev.20190714":"2019-07-14T00:07:18.350Z","1.6.8-dev.20190715":"2019-07-15T00:05:18.515Z","1.6.8-dev.20190716":"2019-07-16T00:05:27.496Z","1.6.8-dev.20190717":"2019-07-17T00:06:23.090Z","1.6.8-dev.20190718":"2019-07-18T00:06:09.236Z","1.6.8-dev.20190719":"2019-07-19T00:05:48.054Z"},"homepage":"https://github.com/cherow/cherow","keywords":["parsing","ecmascript","typescript","parser","performance","tolerant","estree","es2018","es2019","ECMAScript 2019","esnext","javascript","ast","jsx","tolerant","lightweight"],"repository":{"type":"git","url":"git+https://github.com/cherow/cherow.git"},"author":{"name":"KFlash"},"bugs":{"url":"https://github.com/cherow/cherow/issues"},"license":"ISC","readmeFilename":"","users":{"oboochin":true,"kennyf":true},"contributors":[{"name":"Fred Kleuver","email":"https://github.com/fkleuver"}]}