Get Homebrew installed on your mac if you don't already have it
Install highlight. "brew install highlight". (This brings down Lua and Boost as well)
| var escodegen = require('escodegen'); | |
| var js = escodegen.generate({ | |
| "type": "VariableDeclaration", | |
| "start": 0, | |
| "end": 6, | |
| "range": [ | |
| 0, | |
| 6 | |
| ], | |
| "declarations": [ |
| var estraverse = require('estraverse'); | |
| var escodegen = require('escodegen'); | |
| var ast = require('./ast'); | |
| var a = ast.esprimaAST(); | |
| // 'function bar(){ var longVariable; console.log("foo", longVariable);}' | |
| estraverse.traverse(a, { | |
| enter: function (node, parent) { | |
| if (node.type == 'Identifier' && node.name == 'longVariable') { | |
| console.log(node); | |
| node.name = 'b'; |
| var escope = require('escope'); | |
| var esprima = require('esprima'); | |
| var estraverse = require('estraverse'); | |
| var code = require('./ast'); | |
| var ast = code.esprimaAST(); | |
| var scopeManager = escope.analyze(ast); | |
| var scopes = scopeManager.scopes; | |
| // return an array of scopes, in our example we have 2, the global and inside of the function | |
| var currentScope = scopeManager.acquire(ast); | |
| // return the global scope, the current one |
| var esrefactor = require('esrefactor'); | |
| var code = require('./ast'); | |
| // function bar(){ var a; console.log("foo", a);} | |
| var ctx = new esrefactor.Context(code.codeVariable); | |
| var id = ctx.identify(21); | |
| console.log("id", id); | |
| //id { identifier: { type: 'Identifier', name: 'a', range: [ 20, 21 ] }, | |
| // declaration: { type: 'Identifier', name: 'a', range: [ 20, 21 ] }, |
| var esprima = require('esprima'); | |
| var esmangle = require('esmangle'); | |
| var escodegen = require('escodegen'); | |
| var codeBase = require('./code'); | |
| var ast = esprima.parse(codeBase.wholeFile()); | |
| var result = esmangle.mangle(ast); // gets mangled result | |
| console.log(escodegen.generate(result, { | |
| format: { | |
| renumber: true, |
| var assert = require("assert"); | |
| var n = require("ast-types").namedTypes; | |
| var b = require("ast-types").builders; | |
| var fooId = b.identifier("foo"); | |
| var ifFoo = b.ifStatement(fooId, b.blockStatement([ | |
| b.expressionStatement(b.callExpression(fooId, [])) | |
| ])); | |
| assert.ok(n.IfStatement.check(ifFoo)); |
| -server | |
| -Xms512m | |
| -Xmx2048m | |
| -XX:MaxPermSize=512m | |
| -XX:ReservedCodeCacheSize=256m | |
| -XX:+UseCodeCacheFlushing | |
| -XX:+UseCompressedOops | |
| -XX:+UseConcMarkSweepGC | |
| -XX:+AggressiveOpts | |
| -XX:+CMSClassUnloadingEnabled |
Get Homebrew installed on your mac if you don't already have it
Install highlight. "brew install highlight". (This brings down Lua and Boost as well)
| const myPromise = (a) => { | |
| return Promise.resolve(a); | |
| } | |
| async function foo() { | |
| let d1 = await myPromise(1).then(console.log); | |
| let d2 = await myPromise(2).then(console.log);; | |
| } |