{"version":3,"file":"estree-walker.es.js","sources":["../src/estree-walker.js"],"sourcesContent":["export function walk ( ast, { enter, leave }) {\n\tvisit( ast, null, enter, leave );\n}\n\nlet shouldSkip = false;\nconst context = { skip: () => shouldSkip = true };\n\nexport const childKeys = {};\n\nconst toString = Object.prototype.toString;\n\nfunction isArray ( thing ) {\n\treturn toString.call( thing ) === '[object Array]';\n}\n\nfunction visit ( node, parent, enter, leave, prop, index ) {\n\tif ( !node ) return;\n\n\tif ( enter ) {\n\t\tlet _shouldSkip = shouldSkip;\n\t\tshouldSkip = false;\n\t\tenter.call( context, node, parent, prop, index );\n\t\tconst skipped = shouldSkip;\n\t\tshouldSkip = _shouldSkip;\n\n\t\tif ( skipped ) return;\n\t}\n\n\tconst keys = childKeys[ node.type ] || (\n\t\tchildKeys[ node.type ] = Object.keys( node ).filter( key => typeof node[ key ] === 'object' )\n\t);\n\n\tfor ( let i = 0; i < keys.length; i += 1 ) {\n\t\tconst key = keys[i];\n\t\tconst value = node[ key ];\n\n\t\tif ( isArray( value ) ) {\n\t\t\tfor ( let j = 0; j < value.length; j += 1 ) {\n\t\t\t\tvisit( value[j], node, enter, leave, key, j );\n\t\t\t}\n\t\t}\n\n\t\telse if ( value && value.type ) {\n\t\t\tvisit( value, node, enter, leave, key, null );\n\t\t}\n\t}\n\n\tif ( leave ) {\n\t\tleave( node, parent, prop, index );\n\t}\n}\n"],"names":["let","const"],"mappings":"AAAO,SAAS,IAAI,GAAG,GAAG,EAAE,GAAA,EAAkB;KAAhB,KAAK,aAAE;KAAA,KAAK;;CACzC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;CACjC;;AAEDA,IAAI,UAAU,GAAG,KAAK,CAAC;AACvBC,IAAM,OAAO,GAAG,EAAE,IAAI,EAAE,YAAG,SAAG,UAAU,GAAG,IAAI,GAAA,EAAE,CAAC;;AAElD,AAAOA,IAAM,SAAS,GAAG,EAAE,CAAC;;AAE5BA,IAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;;AAE3C,SAAS,OAAO,GAAG,KAAK,GAAG;CAC1B,OAAO,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,gBAAgB,CAAC;CACnD;;AAED,SAAS,KAAK,GAAG,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,GAAG;CAC1D,KAAK,CAAC,IAAI,GAAG,EAAA,OAAO,EAAA;;CAEpB,KAAK,KAAK,GAAG;EACZD,IAAI,WAAW,GAAG,UAAU,CAAC;EAC7B,UAAU,GAAG,KAAK,CAAC;EACnB,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;EACjDC,IAAM,OAAO,GAAG,UAAU,CAAC;EAC3B,UAAU,GAAG,WAAW,CAAC;;EAEzB,KAAK,OAAO,GAAG,EAAA,OAAO,EAAA;EACtB;;CAEDA,IAAM,IAAI,GAAG,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE;EAClC,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,UAAA,GAAG,EAAC,SAAG,OAAO,IAAI,EAAE,GAAG,EAAE,KAAK,QAAQ,GAAA,EAAE;EAC7F,CAAC;;CAEF,MAAMD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG;EAC1CC,IAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;EACpBA,IAAM,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,CAAC;;EAE1B,KAAK,OAAO,EAAE,KAAK,EAAE,GAAG;GACvB,MAAMD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG;IAC3C,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;IAC9C;GACD;;OAEI,KAAK,KAAK,IAAI,KAAK,CAAC,IAAI,GAAG;GAC/B,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;GAC9C;EACD;;CAED,KAAK,KAAK,GAAG;EACZ,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;EACnC;CACD;;;;"}