INNER CODE UNIT · JavaScript

walk

Fausto-404/js-reverse-automation--skill · js-reverse-automation/scripts/ast_candidate_analyzer.js:64

function walk(node, parent, visit) {
  if (!node || typeof node !== "object") return;
  if (typeof node.type === "string") visit(node, parent);
  for (const [key, value] of Object.entries(node)) {
    if (["loc", "start", "end", "extra", "tokens", "comments"].includes(key)) continue;
    if (Array.isArray(value)) value.forEach(child => walk(child, node, visit));
    else if (value && typeof value === "object") walk(value, node, visit);
  }
}

function nameOf(node, parent) {
  if (node.id && node.id.name) return node.id.name;
  if (parent && parent.type === "VariableDeclarator" && parent.id && parent.id.name)
    return parent.id.name;
  if (parent && /ObjectProperty|ObjectMethod|ClassMethod/.test(parent.type || ""))
    return parent.key && (parent.key.name || parent.key.value) || "anonymous";
  return "anonymous";
}

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…