node package manager
Easy sharing. Manage teams and permissions with one click. Create a free org »

hoister

hoister

Put all function and variable declarations at the top of the scope in an AST

NPM

Example

var parse = require('esprima').parse
var generate = require('escodegen').generate
var hoist = require('hoist')
 
var src = 'a = func(123); var a = "test"; function func(x){return x}'
var ast = parse(src)
hoist(ast)
 
console.log(generate(ast))

Console result:

function func(x) {
  return x;
}
var a;
= func(123);
var a = 'test';