UNPKG

lively.ast

Version:

Parsing JS code into ASTs and tools to query and transform these trees.

166 lines (117 loc) 5.52 kB
# changelog lively.ast ## 0.7.37 - acorn@4 ## 0.7.36 - don't capture destructured vars in for loops, such as "for (let x [a,b] of ...) ..." ## 0.7.35 - properly transforming super access in static methods ## 0.7.34 - fixing acorn.walk usage ## 0.7.33 - dont use arguments access when initializing class ## 0.7.32 - more class transform fixes ## 0.7.31 - fixing lookup of existing classes to not overwrite globals accidentally ## 0.7.30 - alternative class-to-function-transform that supports super getters and setters and doesn't require injecting the class object into methods ## 0.7.29 - transforming es6 classes so that declaring class gets passed into function when super call is needed (+ making sure that magic "arguments" array is properly fixed in those cases) ## 0.7.27 - objectSpreadTransform - fixing class tests - scope query: ensure resolveMap - acorn-object-spread - estree: obj spread support - es6 classes: assign name to methods ## 0.7.26 - scope resolve references fix for export stmt with source - safeResolveReferences -> resolveReferences - query: finding decls for references without AST modifications - class transform: optionally producing reference info that is passed into createOrExtendClass in order to track module context state via subscription to module changes - query: safeResolveReferences - node creation helpers: logical, ifStmt - Merge pull request #6 from LivelyKernel/exports-not-resolved-by-default (only resolve exports when asked to) ## 0.7.24 - reverting to old knownGlobals for now as the removal of lively Globals causes trouble with the ObjectEditor ## 0.7.23 - build for fixing the freeze issues - remove deepCopy because tree could have cycles ## 0.7.22 - Merge pull request #4 from LivelyKernel/capture-shorthand-object-properties - ensure keys of shorthand properties are not renamed while capturing - code-categorizer: initial implementation for categorizing es6 classes, proper differentiation between method/property types is still missing - report both declarations and ids for bindings - added imported name of re-exported variables to exports() - exports now return local declaration and identifier node - added imports/exports from lively.modules - changed API to improve finding refs by position - resolve references to their declarations - fix cycle bug by not re-using AST nodes - updating acorn to 3.2.0 ## 0.7.21 - removing "module" as a global - class transform: adds module accessor expression + only capture class in module varRecorder if class is a top-level declaration - findReferencesAndDeclsInScope: find this - findReferencesAndDeclsInScope: find classes ## 0.7.20 - manual imports and exports (for eval) capture correctly ## 0.7.18 - don't shadow lexical bindings in class methods ## 0.7.17 - automatically applying classToFunction transform on rewriteToCaptureTopLevelVariables - making class-to-function-transform work for export default + adding var decls automatically for class declarations - moving eval support over to lively.vm ## 0.7.16 - capturing class expressions in assignments - objectliteral creation helpr - class to function transform - objectLiteral helper ## 0.7.13 - disabling keeping values of var declarations for now (don't merge arbitrary expressions...!) - fix capturing export functions - capturing: fix wrapping destrucured vars - eval transform wrap in func: pass last var decl into function as result - 0.7.12 - fix rewriting classes (in combination with declaration wrappers) - moving declarationWrapper logic and options.keepPreviouslyDeclaredValues processing from lively.vm into eval-support.js ## 0.7.11 - fix for rewriteToRegisterModuleToCaptureSetters - hoisting func decls and their catpures to the top of a scope ## 0.7.10 - ensure existing variables won't get undefined ## 0.7.8 - adding the ability to add an declarationWrapper to captured declarations, to inject a function call, e.g. for allowing lazy initialization. Works for classes, vars, and functions. ## 0.7.6 - replacing reduces with for loops for efficiency - query/capturing: ignoring class expressions when gathering scope + rewriting, fixes LivelyKernel/lively.modules#8 - special transform for 'export default async function', fixes LivelyKernel/lively.modules#9 - correctly capturing export default function statements ## 0.7.4 fixing capturing issue: var x = {..}; export default x; (5 months ago) <Robert Krahn> ## 0.7.3 * adding ast.evalSupport.evalCodeTransform + ast.transform.transformSingleExpression from lively.vm ## 0.7.2 * made some performance improvements in query and capturing ## 0.7.1 * wrapInStartEndCall transformer, preparation for async eval * improvement for returnLastStatement, now really using ast * cleanup and *interface change*!!! of capturing.rewriteToCaptureTopLevelVariables It should now run more efficient... * improving replacing nodes in capturing * removing parseLikeOMeta ### 0.6.9 * fixing scope computation for default destrcutured params * adding node creation helpers ## 0.6.8 * build with babel * query.topLevelFuncDecls * Parsing async / await code (including acorn walk AwaitExpression patch) * visitors based on estree-visitor * capturing exported vars – fixes * fix printAst * query.statementOf ## 0.6.7 * capture computed prop in object literal * support capturing of object destrucuring var declarations a la var {x: [a,b,...c]} = foo * fixes export default class and function capturing * query.statementOf (3 minutes ago) <Robert Krahn>