| OLD | NEW | 
|---|
| 1 let global = this; | 1 let global = this; | 
| 2 function decompileAST(ast) { | 2 function decompileAST(ast) { | 
| 3   let func = global["decompile" + ast.type]; | 3   let func = global["decompile" + ast.type]; | 
| 4   if (!func) | 4   if (!func) | 
| 5     throw "Unknown type " + ast.type; | 5     throw "Unknown type " + ast.type; | 
| 6   return func(ast); | 6   return func(ast); | 
| 7 } | 7 } | 
| 8 | 8 | 
| 9 function decompileProgram(ast) { | 9 function decompileProgram(ast) { | 
| 10   return ast.body.map(decompileAST).join('\n'); | 10   return ast.body.map(decompileAST).join('\n'); | 
| (...skipping 369 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 380   function replace(x) { | 380   function replace(x) { | 
| 381     if (x == q) return '\\' + q; | 381     if (x == q) return '\\' + q; | 
| 382     if (x == '\\') return '\\\\'; | 382     if (x == '\\') return '\\\\'; | 
| 383     if (x == '\b') return '\\b'; | 383     if (x == '\b') return '\\b'; | 
| 384     if (x == '\f') return '\\f'; | 384     if (x == '\f') return '\\f'; | 
| 385     if (x == '\n') return '\\n'; | 385     if (x == '\n') return '\\n'; | 
| 386     if (x == '\r') return '\\r'; | 386     if (x == '\r') return '\\r'; | 
| 387     if (x == '\t') return '\\t'; | 387     if (x == '\t') return '\\t'; | 
| 388     if (x == '\v') return '\\v'; | 388     if (x == '\v') return '\\v'; | 
| 389     let val = x.charCodeAt(0); | 389     let val = x.charCodeAt(0); | 
| 390     if (x < ' ') return '\\x' + (val - val % 16) / 16 + (val % 16); | 390     if (x < ' ') return '\\x' + ((val - val % 16) / 16).toString(16) + (val % 16
     ).toString(16); | 
| 391     return x; | 391     return x; | 
| 392   } | 392   } | 
| 393   let result = ""; | 393   let result = ""; | 
| 394   for (let char of str) | 394   for (let char of str) | 
| 395     result += replace(char); | 395     result += replace(char); | 
| 396   return result; | 396   return result; | 
| 397 } | 397 } | 
| 398 | 398 | 
| 399 function decompileLiteral(ast) { | 399 function decompileLiteral(ast) { | 
| 400   if (typeof ast.value == "string") | 400   if (typeof ast.value == "string") | 
| 401     return '"' + sanitize(ast.value, '"') + '"'; | 401     return '"' + sanitize(ast.value, '"') + '"'; | 
| 402   if (ast.value === null) | 402   if (ast.value === null) | 
| 403       return "null"; | 403       return "null"; | 
| 404   return ast.value; | 404   return ast.value; | 
| 405 } | 405 } | 
| 406 | 406 | 
| 407 function process_js(ast) { | 407 function process_js(ast) { | 
| 408     _print(decompileAST(ast)); | 408     _print(decompileAST(ast)); | 
| 409 } | 409 } | 
| OLD | NEW | 
|---|