cherow - Very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability

  •        71

Cherow is a very fast and lightweight, standards-compliant, self-hosted javascript parser with high focus on both performance and stability. This repo is managed as a monorepo that is composed of many independent npm packages.

https://github.com/cherow/cherow

Tags
Implementation
License
Platform

   




Related Projects

esprima - ECMAScript parsing infrastructure for multipurpose analysis

  •    TypeScript

Esprima (esprima.org, BSD license) is a high performance, standard-compliant ECMAScript parser written in ECMAScript (also popularly known as JavaScript). Esprima is created and maintained by Ariya Hidayat, with the help of many contributors. Esprima can be used to perform lexical analysis (tokenization) or syntactic analysis (parsing) of a JavaScript program.

test262 - Official ECMAScript Conformance Test Suite

  •    Javascript

Test262 itself is described in ECMA TR/104 and is included in ECMA-414 (pdf). The goal of Test262 is to provide test material that covers every observable behavior specified in the ECMA-414 Standards Suite. Development of Test262 is an on-going process. As of October 2017, Test262 consisted of over 29272 individual test files covering the majority of the pseudo-code algorithms and grammar productions defined in the ECMA-414 Standards Suite. Each of these files contains one or more distinct test cases. This marks the most comprehensive ECMAScript test suite to date. While test coverage is broad, TC39 does not consider coverage to be complete and as with any software project there exists the possibility of omissions and errors. This project welcomes any contributions to Test262 that help make test coverage of existing features more comprehensive.

reify - Enable ECMAScript 2015 modules in Node today. No caveats. Full stop.

  •    Javascript

Code generated by the reify compiler relies on a simple runtime API that can be explained through a series of examples. While you do not have to write this API by hand, it is designed to be easily human readable and writable, in part because that makes it easier to explain. I will explain the Module.prototype.watch method first, then the Module.prototype.export method after that. Note that this Module is the constructor of the CommonJS module object, and the import and export methods are custom additions to Module.prototype.

jsx - The JSX specification is a XML-like syntax extension to ECMAScript.

  •    

JSX is a XML-like syntax extension to ECMAScript without any defined semantics. It's NOT intended to be implemented by engines or browsers. It's NOT a proposal to incorporate JSX into the ECMAScript spec itself. It's intended to be used by various preprocessors (transpilers) to transform these tokens into standard ECMAScript.The purpose of this specification is to define a concise and familiar syntax for defining tree structures with attributes. A generic but well defined syntax enables a community of independent parsers and syntax highlighters to conform to a single specification.

ecmascript_sharedmem - Shared memory and atomics for ECMAscript

  •    HTML

This is a specification for Shared Memory and Atomics for ECMAScript, a proposal submitted to Ecma TC39 and currently at Stage 4 in the ECMAScript approval process. IMPORTANT NOTE: As of February 2017 this proposal has been merged into the ECMAScript specification. Bug fixing and further evolution take place in that document, and the prose in the present repository will increasingly become irrelevant. If you find bugs, please check the ECMAScript specification first, and if the bugs are also in that version then please file bugs in the ecma262 bug tracker, not in this repository.


proposal-binary-ast - Binary AST proposal for ECMAScript

  •    

This is the explainer document for a proposed new binary AST format for JS. Performance of applications on the web platform is becoming increasingly bottlenecked by startup (load) time. Larger amounts of JS code are transferred over the wire by more sophisticated web properties. While caching helps, these properties regularly release new code, and cold load times are very important.

espree - An Esprima-compatible JavaScript parser

  •    Javascript

Espree started out as a fork of Esprima v1.2.2, the last stable published released of Esprima before work on ECMAScript 6 began. Espree is now built on top of Acorn, which has a modular architecture that allows extension of core functionality. The goal of Espree is to produce output that is similar to Esprima with a similar API so that it can be used in place of Esprima. The primary goal is to produce the exact same AST structure and tokens as Esprima, and that takes precedence over anything else. (The AST structure being the ESTree API with JSX extensions.) Separate from that, Espree may deviate from what Esprima outputs in terms of where and how comments are attached, as well as what additional information is available on AST nodes. That is to say, Espree may add more things to the AST nodes than Esprima does but the overall AST structure produced will be the same.

eta - Embedded JS template engine for Node, Deno, and the browser

  •    TypeScript

Eta is a lightweight and blazing fast embedded JS templating engine that works inside Node, Deno, and the browser. Created by the developers of Squirrelly, it's written in TypeScript and emphasizes phenomenal performance, configurability, and low bundle size. Simply put, Eta is super: super lightweight, super fast, super powerful, and super simple. Like with EJS, you don't have to worry about learning an entire new templating syntax. Just write JavaScript inside your templates.

JS/CC LALR(1) Parser Generator

  •    Javascript

JS/CC is a parser generator for JavaScript/ECMAScript, which is entirely written in ECMAScript itself. It produces LALR(1) parsers with integrated lexical analyzers. JS/CC can run as a website or be invoked from a console, and runs on several platforms.

typescript-eslint-parser - An ESLint custom parser which leverages TypeScript ESTree to allow for ESLint to lint TypeScript source code

  •    Javascript

An ESLint custom parser which leverages TypeScript ESTree to allow for ESLint to lint TypeScript source code. There is sometimes an incorrect assumption that the parser itself is what does everything necessary to facilitate the use of ESLint with TypeScript. In actuality, it is the combination of the parser and one or more plugins which allow you to maximize your usage of ESLint with TypeScript.

node-es6-examples - ECMAScript 6 examples for Node.JS

  •    

This text introduces and illustrates, with simple examples, ECMAScript 6 (ES6 for short) features natively available in Node. No transpiler or shim is required to run the code snippets. We hope the reader finds the subset of ES6 presented here interesting. The underlying philosophy and broad direction of ES6 has mostly been agreed upon. However, implementation details are being polished until the final specification is published. Experimental ES6 in Node may not comply with the latest draft specification, available here.

moment - Parse, validate, manipulate, and display dates in javascript.

  •    Javascript

A lightweight JavaScript date library for parsing, validating, manipulating, and formatting dates.Moment 2.10.0 does not bring any new features, but the code is now written in ECMAScript 6 modules and placed inside src/. Previously moment.js, locale/*.js and test/moment/*.js, test/locale/*.js contained the source of the project. Now the source is in src/, temporary build (ECMAScript 5) files are placed under build/umd/ (for running tests during development), and the moment.js and locale/*.js files are updated only on release.

promises-unwrapping - The ES6 promises spec, as per September 2013 TC39 meeting

  •    Javascript

This proposal has progressed to the Draft ECMAScript 6 Specification, which is available for review on the official ECMAScript wiki. When referencing the promises specification, you should reference the draft ECMAScript 6 spec, and not this repository. We are still using this repository as a way to fix the remaining issues with the promises specification, and as such it may be slightly ahead of the draft specification as we perform that work. However, we must emphasize it is only a staging ground.

eslint-plugin-node - Additional ESLint's rules for Node.js

  •    Javascript

Note: It recommends a use of the "engines" field of package.json. The "engines" field is used by node/no-unsupported-features/* rules. eslint-plugin-node follows semantic versioning and ESLint's Semantic Versioning Policy.

es6-shim - ECMAScript 6 compatibility shims for legacy JavaScript engines

  •    Javascript

Provides compatibility shims so that legacy JavaScript engines behave as closely as possible to ECMAScript 6 (Harmony).In both browser and node you may also want to include unorm; see the String.prototype.normalize section for details.

transit-js - Transit for JavaScript

  •    Javascript

Transit is a data format and a set of libraries for conveying values between applications written in different languages. This library provides support for marshalling Transit data to/from JavaScript. transit-js will work with any ECMAScript-262 Edition 3 or newer JavaScript implementation provided that a JSON module that supplies parse and stringify methods is present. transit-js does not currently support encoding to MessagePack. Unlike the Java and Clojure implementations it relies on the non-streaming JSON parsing mechanism of the host JavaScript environment. This implementation's major.minor version number corresponds to the version of the Transit specification it supports.

node-xml2js - XML to JavaScript object converter.

  •    CoffeeScript

Simple XML to JavaScript object converter. It supports bi-directional conversion. Uses sax-js and xmlbuilder-js.Note: If you're looking for a full DOM parser, you probably want JSDom.

id3 - A JavaScript ID3 tags parser for Node & browsers.

  •    Javascript

id3.js is a JavaScript library for reading and parsing ID3 tags of MP3 files. id3.js can parse both ID3v1 and ID3v2 tags within a browser or Node environment. It also supports reading from local files (Node-only), same-origin URLs (AJAX) and File instances (HTML5 File API). Here the MP3 is being requested by partial AJAX requests, such that only the ID3v1 and ID3v2 tags are read rather than the file as a whole.

jsprime - a javascript static security analysis tool

  •    Javascript

Today, more and more developers are switching to JavaScript as their first choice of language. The reason is simple JavaScript has now been started to be accepted as the mainstream programming for applications, be it on the web or on the mobile; be it on client-side, be it on the server side. JavaScript flexibility and its loose typing is friendly to developers to create rich applications at an unbelievable speed. Major advancements in the performance of JavaScript interpreters, in recent days, have almost eliminated the question of scalability and throughput from many organizations. So the point is JavaScript is now a really important and powerful language we have today and it's usage growing everyday. From client-side code in web applications it grew to server-side through Node.JS and it's now supported as proper language to write applications on major mobile operating system platforms like Windows 8 apps and the upcoming Firefox OS apps. But the problem is, many developers practice insecure coding which leads to many client side attacks, out of which DOM XSS is the most infamous. We tried to understand the root cause of this problem and figured out is that there are not enough practically usable tools that can solve real-world problems. Hence as our first attempt towards solving this problem, we want to talk about JSPrime: A JavaScript static analysis tool for the rest of us. It's a very light-weight and very easy to use point-and-click tool! The static analysis tool is based on the very popular Esprima ECMAScript parser by Aria Hidayat.

core-js - Standard Library

  •    Javascript

It's documentation for the unstable core-js@3, if you looking documentation for core-js@2, please, check this branch. Modular standard library for JavaScript. Includes polyfills for ECMAScript 5, 2015, 2016, 2017: promises, symbols, collections, iterators, typed arrays, many other features, ECMAScript proposals, some cross-platform WHATWG / W3C ECMAScript-related features and proposals like setImmediate. You can load only required features or use it without global namespace pollution.






We have large collection of open source products. Follow the tags from Tag Cloud >>


Open source products are scattered around the web. Please provide information about the open source projects you own / you use. Add Projects.