Awesome Open Source
Awesome Open Source


Trigger events based on esquery selectors during a traversal of a SpiderMonkey format AST.


npm install --save esdispatch


var counter = 0, dispatcher = new ESDispatcher;
  'UpdateExpression[operator="++"] > Identifier[name=i]',
  function(node, ancestors) { ++counter; }
dispatcher.observe(spidermonkeyAST, function() {
  counter; // 4


new ESDispatcher → ESDispatcher instance

The ESDispatcher constructor takes no arguments.

ESDispatcher::addListener(selector, listener) → void

Invoke listener whenever esdispatch walks over a node that matches selector. listener is given two arguments: the node that matched the selector, and a list containing the ancestors of that node. listener may also be an object containing an enter and, optionally, a leave function. In that case, the enter function will be called in pre-order, and the leave function will be called in post-order. Aliased as ESDispatcher::on.

ESDispatcher::once(selector, listener) → void

Adds a listener that is invoked only the first time selector matches.

ESDispatcher::observe(ast, onFinished) → void

Begin a traversal using the given SpiderMonkey AST, triggering any listeners associated with matching queries. onFinished, if given, is called with no arguments once the traversal is completed.

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
javascript (68,100
coffeescript (1,462
ast (156
ecmascript (87

Find Open Source By Browsing 7,000 Topics Across 59 Categories