"use strict";const l=require("../../../../../../../../_virtual/traverse.js"),v=require("../definitions/index.js");Object.defineProperty(l.__exports,"__esModule",{value:!0});l.__exports.default=s;var y=v.__require();function s(r,e,f){typeof e=="function"&&(e={enter:e});const{enter:u,exit:i}=e;_(r,u,i,f,[])}function _(r,e,f,u,i){const n=y.VISITOR_KEYS[r.type];if(!!n){e&&e(r,i,u);for(const o of n){const t=r[o];if(Array.isArray(t))for(let p=0;p<t.length;p++){const c=t[p];!c||(i.push({node:r,key:o,index:p}),_(c,e,f,u,i),i.pop())}else t&&(i.push({node:r,key:o}),_(t,e,f,u,i),i.pop())}f&&f(r,i,u)}}
//# sourceMappingURL=traverse.js.map
