{"version":3,"names":["babel","types","t","template","transformFromAst","traverse","getIdentifierForExplicitScopeObject","localIdentifier","parentWithScope","findParent","par","scope","hasOwnBinding","node","name","value","bindings","scopeName","Object","keys","find","key","path","id","FLAG_GENERATED_SCOPE_OBJECT","uniqueIdentifier","identifier","generateUidIdentifier","push","kind","init","objectExpression","objectProperty","booleanLiteral","FLAG_SHOULD_NOT_REWRITE_IDENTIFIER","visitor","Program","enter","ppath","state","StringLiteral","identifierPath","parentPath","get","scopeIdentifier","replaceWith","setters","_srcClientReactiveBabelPluginActiveExpressionRewritingIndexJs","execute","__SystemJSRewritingHack","_recorder_","_src_client_reactive_babel_plugin_databindings_post_process_js","defineProperty","set","thisIsVererySecretVariableName","enumerable","configurable"],"sources":["post-process.js"],"sourcesContent":["import {FLAG_SHOULD_NOT_REWRITE_IDENTIFIER, FLAG_GENERATED_SCOPE_OBJECT} from 'src/client/reactive/babel-plugin-active-expression-rewriting/index.js'\n\nexport default function (babel) {\n  const { types: t, template, transformFromAst, traverse } = babel;\n\n  function getIdentifierForExplicitScopeObject(localIdentifier) {\n    let parentWithScope = localIdentifier.findParent(par => par.scope.hasOwnBinding(localIdentifier.node.name || localIdentifier.node.value));\n    \n    let bindings = parentWithScope.scope.bindings;\n    let scopeName = Object.keys(bindings).find(key => {\n      return bindings[key].path && bindings[key].path.node && bindings[key].path.node.id && bindings[key].path.node.id[FLAG_GENERATED_SCOPE_OBJECT]; // should actually be IS_EXPLICIT_SCOPE_OBJECT\n    });\n\n    let uniqueIdentifier;\n    if (scopeName) {\n      uniqueIdentifier = t.identifier(scopeName);\n    } else {\n      uniqueIdentifier = parentWithScope.scope.generateUidIdentifier('scope');\n      uniqueIdentifier[FLAG_GENERATED_SCOPE_OBJECT] = true;\n\n      parentWithScope.scope.push({\n        kind: 'let',\n        id: uniqueIdentifier,\n        init: t.objectExpression([t.objectProperty(t.identifier(\"isScope\"), t.booleanLiteral(true))])\n      });\n    }\n    uniqueIdentifier[FLAG_SHOULD_NOT_REWRITE_IDENTIFIER] = true;\n    return uniqueIdentifier;\n  }\n  \n  return {\n    name: \"data-binding-post-process\",\n    visitor: {\n      Program: {\n        enter(ppath, state) {\n          ppath.traverse({\n            StringLiteral(path) {\n              if(path.node.value === \"__localScopeObject__\") {\n                const identifierPath = path.parentPath.parentPath.get(\"properties.2.value\");\n                const scopeIdentifier = getIdentifierForExplicitScopeObject(identifierPath);\n                path.replaceWith(scopeIdentifier);\n              }\n            }\n          });\n        }\n      }\n    }\n  };\n}"],"mappings":"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"}