RIFF¤ WEBPVP8 ˜ ðÑ *ôô>‘HŸK¥¤"§£±¨àð ....................................../////.===Shadow-Here===./////................................................ > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < ------------------------------------------------------------------------------------------------------------------- /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// RIFF¤ WEBPVP8 ˜ ðÑ *ôô>‘HŸK¥¤"§£±¨àð enü¹%½_F‘åè¿2ºQú³íªú`N¿­3ÿƒügµJžaÿ¯ÿ°~¼ÎùnúîÞÖô•òíôÁÉß®Sm¥Ü/ ‡ó˜f£Ùà<˜„xëJ¢Ù€SO3x<ªÔ©4¿+ç¶A`q@Ì“Úñè™ÍÿJÌ´ª-˜ÆtÊÛL]Ïq*‘Ý”ì#ŸÌÏãY]@ê`¿ /ªfkØB4·®£ó z—Üw¥Pxù–ÞLШKÇN¾AkÙTf½è'‰g gÆv›Øuh~ a˜Z— ïj*á¥t d£“uÒ ¨`K˜¹ßþ]b>˜]_ÏÔ6W—è2r4x•íÖ…"ƒÖNîä!¦å Ú}ýxGøÌ —@ ;ÆÚŠ=ɾ1ý8lªË¥ô ^yf®Œ¢u&2©nÙÇ›ñÂñŒ³ aPo['½»øFùà­+4ê“$!lövlüÞ=;N®3ð‚õ›DÉKòÞ>ÄÍ ¥ˆuߤ#ˆ$6ù™¥îЇy’ÍB¼ çxÛ;X"WL£R÷͝*ó-¶Zu}º.s¸sšXqù–DþÿvªhüïwyŸ ¯é³lÀ:KCûÄ£Ëá\…­ ~—ýóî ¼ûûÜTÓüÇy…ŽÆvc»¾×U ñ¸žþоP÷¦ó:Ò¨¨5;Ð#&#ÖúñläÿÁœ GxÉ­/ñ‡áQðìYÉtÒw޼GÔ´zàÒò ð*ëzƒ•4~H]Ø‹f ñÓÈñ`NåWçs'ÆÏW^ø¹!XžµmQ5ÃËoLœÎ: ÞËÍ¥J ù…î èo£ßPÎñ¶ž8.Œ]ʵ~5›ÙË-ù*8ÙÖß±~ ©¹rÓê‚j¶d¸{^Q'˜±Crß ÚH—#¥¥QlÀ×ëã‡DÜ«èî þ&Çæžî;ŽÏºò6ÒLÃXy&ZŒ'j‚¢Ù€IßÚù+–MGi‰*jE€‘JcÜ ÓÌ EÏÚj]o˜ Þr <¾U ûŪæÍ/šÝH¥˜b”¼ ÁñßX GP›ï2›4WŠÏà×£…íÓk†¦H·ÅíMh–*nó÷à]ÁjCº€b7<ب‹¨5車bp2:Á[UªM„QŒçiNMa#<5›áËó¸HýÊ"…×Éw¹¦ì2º–x<›»a±¸3Weü®FÝ⑱ö–î–³|LPÈ~çð~Çå‡|º kD¢µÏàÆAI %1À% ¹Ò – ”ϝS¦‰4&¶£°à Öý”û_Ò Áw°A«Å€?mÇÛgHÉ/8)á¾ÛìáöŽP í¨PŸNÙµº¦‡§Ùš"ÿ«>+ªÕ`Ê÷‡‚ß Õû˜þãÇ-PÍ.¾XV‘€ dÜ"þ4¹ ±Oú‘©t¥¦FªÄÃÄ•b‚znýu½—#cDs˜ÃiÑOˆñ×QO=*IAÊ,¶ŽZƒ;‡wøXè%EÐk:F±Ú” .Ѽ+Áu&Ç`."pÈÉw o&¿dE6‘’EqTuK@Ì¥ã™À(Êk(h‰,H}RÀIXÛš3µ1©_OqÚÒJAñ$ÊÙÜ;D3çŒ[þùœh¬Ã³™ö6ç†NY".Ú‰ï[ªŸŒ '²Ð öø_¨ÂÉ9ué¶³ÒŠõTàîMØ#û¯gN‡bÙ놚X„ö …ÉeüÌ^J ‹€.œ$Æ)βÄeæW#óüßĺŸ€ ÀzwV 9oä»f4V*uB «Ë†¹ì¯žR霓æHXa=&“I4K;¯ç‹h×·"UŠ~<•╪Vêª&ÍSÃÆÅ?ÔqÎ*mTM ˜›µwêd#[C¡©§‘D<©àb†–ÁœøvH/,í:¯( ²£|4-„Æövv„Yͼ™^Á$ˆ„¢Û[6yB.åH*V¨æ?$=˜Ñ€•ñ·­(VlŸ‘ nÀt8W÷´Bûba?q9ú¶Xƒl«ÿ\ù¶’þòUÐj/õ¢Ìµ³g$ƒÎR!¸»|Oߍë’BhîÚÑ¢ñåŒJ„®„£2Ð3•ô02Nt…!£Í]Ïc½Qÿ?ˆ<&ÃA¾Ú,JˆijÌ#5yz„‰Î|ÊŽ5QÏ:‹ÐaóVÔxW—CpeÏzÐïíçôÿÅ_[hãsÐ_/ŽTÝ?BîˆííV$<¿i>²F¬_Eß¿ †bÊŒº­ÿ®Z H“C}”¬,Mp ý/Bá£w>˜YV°aƒúh+cŠ- r/[%|üUMHäQ°X»|û/@|°¥Ð !BÔ Ç¢Ä©š+Õì D«7ìN¶ŽðÔ " ƶ’ÖçtA‰Û×}{tþz­¾GÍ›k¹OEJR$ Â׃ «ëÁ"oÉôž$oUK(Ä)Ãz³Ê-‹êN[Ò3Œñbï8P 4ƒ×q¢bo|?<ÛX¬òÄͰL–±›(™ûG?ýË©ÚÄ–ÂDØÐ_Ç¡ô ¾–ÄÏø ×e8Ë©$ÄF¹Å‹ì[©óìl:F¾f´‹‹Xì²ï®\¬ôùƒ ÿat¥óèÒùHß0äe‚;ü×h:ÆWðHž=Ã8骣"kœ'Y?³}Tûè€>?0l›e1Lòñ„aæKÆw…hÖŠùW…ÈÆÄ0ši·›[pcwËþñiêíY/~-Á5˜!¿†A›™Mÿþ(±“t@â“ö2­´TG5yé]çå僳 .·ÍïçÝ7UÚ±Ð/Nè»,_Ï ùdj7\ï Wì4›„»c¸àešg#ÒÊ⥭áØo5‘?ÌdÝô¯ ¹kzsƒ=´#ëÉK›Ø´±-¥eW?‡çßtòTã…$Ý+qÿ±ƒ÷_3Ô¥í÷:æ–ž<·Ö‡‰Å¢ š‡%Ô—utÌÈìðžgÖÀz²À—ï÷Óîäõ{K'´È÷³yaÏÁjƒô}ž§®æÊydÕÈë5¯èˆõvÕ©ã*çD„ “z„Ó‡^^xÂ3M§A´JG‚öï 3W'ˆ.OvXè¡ÊÕª?5º7†˜(˜Ç¶#çê’¶!ÌdZK§æ 0fãaN]òY³RV ™î$®K2R¨`W!1Ôó\;Ý ýB%qæK•&ÓÈe9È0êI±žeŸß -ú@žQr¦ ö4»M¼Áè¹µmw 9 EÆE_°2ó„ŸXKWÁ×Hóì^´²GѝF©óäR†¦‰ç"V»eØ<3ùd3ÿÚ¤Žú“Gi" —‘_ÙËÎ~Üö¯¥½Î»üŸEÚŽåmÞþí ;ÞólËΦMzA"Âf(´òá;Éï(/7½ûñÌ­cïÕçлþÝz¾-ÍvÑ“pH­–ðÓj$¸Äû¤‚‘ãUBË-n“2åPkS5&‹Â|+g^œ®Ì͆d!OïäîU«c;{Û!ÅŽ«ëZ9Ókóˆ]¯ƒ›né `ÇÒ+tÆš (ØKá¾—=3œ®•vuMñg²\ï Ec€ 05±d™‡×iÇ×›UúvÌ¢£Èþ¡ÕØô¶ßÎA"ß±#Ö²ˆÊŸ¦*Ä~ij|àø.-¼'»Ú¥£h ofº¦‡VsR=N½„Î v˜Z*SÌ{=jÑB‹tê…;’HžH¯8–îDù8ñ¢|Q•bÛçš–‹m³“ê¨ åÏ^m¬Žãþ©ïêO‡½6] µÆ„Ooòü ²x}N¦Ë3ïé¿»€›HA˜m%çÞ/¿í7Fø“‹léUk)É°Œµ8Q8›:ÀŠeT*šõ~ôڝG6 ¢}`ùH­–”¡k ‰P1>š†®9z11!X wKfmÁ¦xÑ,N1Q”–æB¶M…ÒÃv6SMˆhU¬ÊPŽï‘öj=·CŒ¯u¹ƒVIЃsx4’ömÛýcå¡¶7ßŠß 57^\wÒÐÆ k§h,Œý î«q^R½3]J¸ÇðN ‚çU¬ôº^Áì} ³f©Õœ§ˆã:FÄÈ‚é(€™?àýÓüè1Gô£¼éj‚OÅñ  #>×—ßtà 0G¥Åa뀐kßhc™À_ÉñÞ#±)GD" YîäË-ÿÙ̪ ¹™a¯´¢E\ÝÒö‚;™„ë]_ p8‰o¡ñ+^÷ 3‘'dT4œŽ ðVë½° :¬víÑ«£tßÚS-3¶“þ2 †üüʨòrš¹M{É_¤`Û¨0ìjœøJ‡:÷ÃáZ˜†@GP&œÑDGÏs¡þ¦þDGú‘1Yá9Ôþ¼ ûø…§÷8&–ÜÑnÄ_m®^üÆ`;ÉVÁJ£?â€-ßê}suÍ2sõA NÌúA磸‘îÿÚ»ƒìö·á¿±tÑÐ"Tÿü˜[@/äj¬€uüªìù¥Ý˜á8Ý´sõj 8@rˆð äþZÇD®ÿUÏ2ùôõrBzÆÏÞž>Ì™xœ“ wiÎ×7_… ¸ \#€MɁV¶¥üÕÿPÔ9Z‡ø§É8#H:ƒ5ÀÝå9ÍIŒ5åKÙŠ÷qÄ>1AÈøžj"µÂд/ªnÀ qªã}"iŸBå˜ÓÛŽ¦…&ݧ;G@—³b¯“•"´4í¨ôM¨åñC‹ïùÉó¯ÓsSH2Ý@ßáM‡ˆKÀªÛUeø/4\gnm¥‹ŸŒ qÄ b9ÞwÒNÏ_4Ég³ú=܆‚´ •â¥õeíþkjz>éÚyU«Íӝ݃6"8/ø{=Ô¢»G¥ äUw°W«,ô—¿ãㆅү¢³xŠUû™yŒ (øSópÐ 9\åTâ»—*oG$/×ÍT†Y¿1¤Þ¢_‡ ¼ „±ÍçèSaÓ 3ÛMÁBkxs‰’R/¡¤ˆÙçª(*õ„üXÌ´ƒ E§´¬EF"Ù”R/ÐNyÆÂ^°?™6¡œïJ·±$§?º>ÖüœcNÌù¯G ‹ñ2ЁBB„^·úìaz¨k:#¨Æ¨8LÎõލ£^§S&cŒÐU€ü(‡F±Š¼&P>8ÙÁ ‰ p5?0ÊÆƒZl¸aô š¼¡}gÿ¶zÆC²¹¬ÎÖG*HB¡O<º2#ñŒAƒ–¡B˜´É$¥›É:FÀÔx¾u?XÜÏÓvN©RS{2ʈãk9rmP¼Qq̳ è¼ÐFׄ^¡Öì fE“F4A…!ì/…¦Lƒ… … $%´¾yã@CI¬ á—3PþBÏNÿ<ý°4Ü ËÃ#ØÍ~âW«rEñw‹eùMMHß²`¬Öó½íf³:‹k˜¯÷}Z!ã¿<¥,\#öµÀ¯aÒNÆIé,Ћ–lŽ#Àæ9ÀÒS·I’½-Ïp Äz¤Š Â* ­íÄ9­< h>׍3ZkËU¹§˜ŒŠ±f­’¤º³Q ÏB?‹#µíÃ¥®@(Gs«†vI¥Mµ‹Á©e~2ú³ÁP4ìÕi‚²Ê^ö@-DþÓàlÜOÍ]n"µã:žpsŽ¢:! Aõ.ç~ÓBûH÷JCÌ]õVƒd «ú´QÙEA–¯¯Œ!.ˆˆëQ±ù œ·Ì!Õâ )ùL„ÅÀlÚè5@B…o´Æ¸XÓ&Û…O«˜”_#‡ƒ„ûÈt!¤ÁÏ›ÎÝŠ?c9 â\>lÓÁVÄÑ™£eØY]:fÝ–—ù+p{™ðè û³”g±OƒÚSù£áÁÊ„ä,ï7š²G ÕÌBk)~ÑiCµ|h#u¤¶îK¨² #²vݯGãeÖ϶ú…¾múÀ¶þÔñ‚Š9'^($¤§ò “š½{éúp÷J›ušS¹áªCÂubÃH9™D™/ZöØÁ‡¦ÝÙŸ·kð*_”.C‹{áXó€‡c¡c€§/šò/&éš÷,àéJþ‰X›fµ“C¨œ®r¬"kL‰Â_q…Z–.ÉL~O µ›zn‚¹À¦Öª7\àHµšÖ %»ÇníV[¥*Õ;ƒ#½¾HK-ÖIÊdÏEÚ#=o÷Óò³´Š: Ç?{¾+9›–‘OEáU·S€˜j"ÄaÜ ŒÛWt› á–c#a»pÔZÞdŽtWê=9éöÊ¢µ~ ë ;Öe‡Œ®:bî3±ýê¢wà¼îpêñ¹¾4 zc¾ðÖÿzdêŒÑÒŝÀ‰s6¤í³ÎÙB¿OZ”+F¤á‡3@Ñëäg©·Ž ˆèª<ù@É{&S„œÕúÀA)‰h:YÀ5^ÂÓŒ°õäU\ ùËÍû#²?Xe¬tu‰^zÒÔãë¼ÛWtEtû …‚g¶Úüâî*moGè¨7%u!]PhÏd™Ý%Îx: VÒ¦ôÊD3ÀŽKÛËãvÆî…N¯ä>Eró–ð`5 Œ%u5XkñÌ*NU%¶áœÊ:Qÿú»“úzyÏ6å-၇¾ ´ ÒÊ]y žO‘w2Äøæ…H’²f±ÎÇ.ª|¥'gîV•Ü .̘¯€šòü¤U~Ù†*¢!?ò wý,}´°ÔÞnïoKq5µb!áÓ3"vAßH¡³¡·G(ÐÎ0Îò¼MG!/ài®@—¬04*`…«é8ªøøló“ˆÊ”èù¤…ßÊoÿé'ËuÌÖ5×È¡§ˆˆfŽë9}hìâ_!!¯  B&Ëö¶‰ÀAÙNVŸ Wh›¸®XÑJì¨ú“¿÷3uj²˜¨ÍÎìë±aúŠÝå¯ð*Ó¨ôJ“yºØ)m°WýOè68†ŸÏ2—‰Ïüꪫٚ¥‹l1 ø ÏÄFjêµvÌbü¦èÝx:X±¢H=MÐß—,ˆÉÇ´(9ú¾^ÅÚ4¿m‡$âX‘å%(AlZo@½¨UOÌÕ”1ø¸jÎÀÃÃ_ µ‘Ü.œº¦Ut: Æï’!=¯uwû#,“pþÇúŒø(é@?³ü¥‘Mo §—s@Œ#)§ŒùkL}NOÆêA›¸~r½¼ÙA—HJ«eˆÖ´*¡ÓpÌŸö.m<-"³ûÈ$¬_6­åf£ïÚâj1y§ÕJ½@dÞÁr&Í\Z%D£Íñ·AZ Û³øüd/ªAi†/Й~  ‡âĮҮÏh§°b—›Û«mJžòG'[ÈYýŒ¦9psl ýÁ ®±f¦x,‰½tN ‚Xª9 ÙÖH.«Lo0×?͹m¡å†Ѽ+›2ƒF ±Ê8 7Hցϓ²Æ–m9…òŸï]Â1äN†VLâCˆU .ÿ‰Ts +ÅÎx(%¦u]6AF Š ØF鈄‘ |¢¶c±soŒ/t[a¾–û:s·`i햍ê›ËchÈ…8ßÀUÜewŒðNOƒõD%q#éû\9¤x¹&UE×G¥ Í—™$ð E6-‡¼!ýpãÔM˜ Âsìe¯ñµK¢Ç¡ùôléœ4Ö£”À Š®Ðc ^¨À}ÙËŸ§›ºê{ÊuÉC ×Sr€¤’fÉ*j!úÓ’Gsùìoîßîn%ò· àc Wp÷$¨˜)û»H ×8ŽÒ€Zj¤3ÀÙºY'Ql¦py{-6íÔCeiØp‘‡XÊîÆUߢ܂ž£Xé¼Y8þ©ëgñß}é.ÎógÒ„ÃØËø¯»™§Xýy M%@NŠ À(~áÐvu7&•,Ù˜ó€uP‡^^®=_E„jt’ 403WebShell
403Webshell
Server IP : 104.225.223.251  /  Your IP : 216.73.216.41
Web Server : Apache/2.4.41 (Ubuntu)
System : Linux agtdemo03 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User : root ( 0)
PHP Version : 7.4.3-4ubuntu2.29
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /home/web/dev.agtindia.co.in/lrg-report/node_modules/@babel/traverse/lib/scope/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/web/dev.agtindia.co.in/lrg-report/node_modules/@babel/traverse/lib/scope/index.js.map
{"version":3,"names":["NOT_LOCAL_BINDING","callExpression","cloneNode","getBindingIdentifiers","identifier","isArrayExpression","isBinary","isClass","isClassBody","isClassDeclaration","isExportAllDeclaration","isExportDefaultDeclaration","isExportNamedDeclaration","isFunctionDeclaration","isIdentifier","isImportDeclaration","isLiteral","isMethod","isModuleDeclaration","isModuleSpecifier","isNullLiteral","isObjectExpression","isProperty","isPureish","isRegExpLiteral","isSuper","isTaggedTemplateExpression","isTemplateLiteral","isThisExpression","isUnaryExpression","isVariableDeclaration","matchesPattern","memberExpression","numericLiteral","toIdentifier","unaryExpression","variableDeclaration","variableDeclarator","isRecordExpression","isTupleExpression","isObjectProperty","isTopicReference","isMetaProperty","isPrivateName","gatherNodeParts","node","parts","type","source","specifiers","length","e","declaration","local","push","value","object","property","name","callee","properties","argument","key","left","id","expression","meta","openingElement","openingFragment","namespace","collectorVisitor","ForStatement","path","declar","get","isVar","scope","parentScope","getFunctionParent","getProgramParent","registerBinding","Declaration","isBlockScoped","isExportDeclaration","parent","registerDeclaration","ImportDeclaration","getBlockParent","ReferencedIdentifier","state","references","ForXStatement","isPattern","constantViolations","ExportDeclaration","exit","binding","getBinding","reference","decl","declarations","Object","keys","LabeledStatement","AssignmentExpression","assignments","UpdateExpression","UnaryExpression","operator","BlockScoped","bindings","CatchClause","Function","params","param","isFunctionExpression","has","ClassExpression","uid","Scope","constructor","block","labels","inited","globals","uids","data","crawling","cached","scopeCache","set","Map","shouldSkip","listKey","parentPath","isScope","parentBlock","hub","traverse","opts","generateDeclaredUidIdentifier","generateUidIdentifier","generateUid","replace","i","_generateUid","hasLabel","hasBinding","hasGlobal","hasReference","program","generateUidBasedOnNode","defaultName","join","slice","generateUidIdentifierBasedOnNode","isStatic","constant","maybeGenerateMemoised","dontPush","checkBlockScopedCollisions","kind","duplicate","buildError","TypeError","rename","oldName","newName","Renamer","_renameFromMap","map","dump","sep","repeat","console","log","violations","toArray","arrayLikeIsIterable","isGenericType","helperName","args","unshift","addHelper","getLabel","registerLabel","label","isLabeledStatement","declare","specifier","buildUndefinedNode","registerConstantViolation","ids","reassign","bindingPath","ReferenceError","declarators","getOuterBindingIdentifiers","getOwnBinding","Binding","addGlobal","hasUid","isPure","constantsOnly","superClass","decorators","body","method","right","elem","elements","prop","computed","static","tag","quasi","expressions","setData","val","getData","removeData","init","crawl","create","programParent","_exploded","visit","enter","typeVisitors","ref","getPatternParent","isBlockStatement","isProgram","isSwitchStatement","isLoop","isCatchClause","isFunction","ensureBlock","unique","blockHoist","_blockHoist","dataKey","declarPath","unshiftContainer","declarator","len","Error","isFunctionParent","isBlockParent","getAllBindings","getAllBindingsOfKind","kinds","bindingIdentifierEquals","getBindingIdentifier","previousPath","isArrowFunctionExpression","getOwnBindingIdentifier","hasOwnBinding","noGlobals","parentHasBinding","includes","contextVariables","moveBindingTo","info","removeOwnBinding","removeBinding","builtin"],"sources":["../../src/scope/index.ts"],"sourcesContent":["import Renamer from \"./lib/renamer\";\nimport type NodePath from \"../path\";\nimport traverse from \"../index\";\nimport type { TraverseOptions } from \"../index\";\nimport Binding from \"./binding\";\nimport type { BindingKind } from \"./binding\";\nimport globals from \"globals\";\nimport {\n  NOT_LOCAL_BINDING,\n  callExpression,\n  cloneNode,\n  getBindingIdentifiers,\n  identifier,\n  isArrayExpression,\n  isBinary,\n  isClass,\n  isClassBody,\n  isClassDeclaration,\n  isExportAllDeclaration,\n  isExportDefaultDeclaration,\n  isExportNamedDeclaration,\n  isFunctionDeclaration,\n  isIdentifier,\n  isImportDeclaration,\n  isLiteral,\n  isMethod,\n  isModuleDeclaration,\n  isModuleSpecifier,\n  isNullLiteral,\n  isObjectExpression,\n  isProperty,\n  isPureish,\n  isRegExpLiteral,\n  isSuper,\n  isTaggedTemplateExpression,\n  isTemplateLiteral,\n  isThisExpression,\n  isUnaryExpression,\n  isVariableDeclaration,\n  matchesPattern,\n  memberExpression,\n  numericLiteral,\n  toIdentifier,\n  unaryExpression,\n  variableDeclaration,\n  variableDeclarator,\n  isRecordExpression,\n  isTupleExpression,\n  isObjectProperty,\n  isTopicReference,\n  isMetaProperty,\n  isPrivateName,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport { scope as scopeCache } from \"../cache\";\nimport type { Visitor } from \"../types\";\n\ntype NodePart = string | number | boolean;\n// Recursively gathers the identifying names of a node.\nfunction gatherNodeParts(node: t.Node, parts: NodePart[]) {\n  switch (node?.type) {\n    default:\n      if (isModuleDeclaration(node)) {\n        if (\n          (isExportAllDeclaration(node) ||\n            isExportNamedDeclaration(node) ||\n            isImportDeclaration(node)) &&\n          node.source\n        ) {\n          gatherNodeParts(node.source, parts);\n        } else if (\n          (isExportNamedDeclaration(node) || isImportDeclaration(node)) &&\n          node.specifiers &&\n          node.specifiers.length\n        ) {\n          for (const e of node.specifiers) gatherNodeParts(e, parts);\n        } else if (\n          (isExportDefaultDeclaration(node) ||\n            isExportNamedDeclaration(node)) &&\n          node.declaration\n        ) {\n          gatherNodeParts(node.declaration, parts);\n        }\n      } else if (isModuleSpecifier(node)) {\n        // todo(flow->ts): should condition instead be:\n        //    ```\n        //    t.isExportSpecifier(node) ||\n        //    t.isImportDefaultSpecifier(node) ||\n        //    t.isImportNamespaceSpecifier(node) ||\n        //    t.isImportSpecifier(node)\n        //    ```\n        //    allowing only nodes with `.local`?\n        // @ts-expect-error todo(flow->ts)\n        gatherNodeParts(node.local, parts);\n      } else if (\n        isLiteral(node) &&\n        !isNullLiteral(node) &&\n        !isRegExpLiteral(node) &&\n        !isTemplateLiteral(node)\n      ) {\n        parts.push(node.value);\n      }\n      break;\n\n    case \"MemberExpression\":\n    case \"OptionalMemberExpression\":\n    case \"JSXMemberExpression\":\n      gatherNodeParts(node.object, parts);\n      gatherNodeParts(node.property, parts);\n      break;\n\n    case \"Identifier\":\n    case \"JSXIdentifier\":\n      parts.push(node.name);\n      break;\n\n    case \"CallExpression\":\n    case \"OptionalCallExpression\":\n    case \"NewExpression\":\n      gatherNodeParts(node.callee, parts);\n      break;\n\n    case \"ObjectExpression\":\n    case \"ObjectPattern\":\n      for (const e of node.properties) {\n        gatherNodeParts(e, parts);\n      }\n      break;\n\n    case \"SpreadElement\":\n    case \"RestElement\":\n      gatherNodeParts(node.argument, parts);\n      break;\n\n    case \"ObjectProperty\":\n    case \"ObjectMethod\":\n    case \"ClassProperty\":\n    case \"ClassMethod\":\n    case \"ClassPrivateProperty\":\n    case \"ClassPrivateMethod\":\n      gatherNodeParts(node.key, parts);\n      break;\n\n    case \"ThisExpression\":\n      parts.push(\"this\");\n      break;\n\n    case \"Super\":\n      parts.push(\"super\");\n      break;\n\n    case \"Import\":\n      parts.push(\"import\");\n      break;\n\n    case \"DoExpression\":\n      parts.push(\"do\");\n      break;\n\n    case \"YieldExpression\":\n      parts.push(\"yield\");\n      gatherNodeParts(node.argument, parts);\n      break;\n\n    case \"AwaitExpression\":\n      parts.push(\"await\");\n      gatherNodeParts(node.argument, parts);\n      break;\n\n    case \"AssignmentExpression\":\n      gatherNodeParts(node.left, parts);\n      break;\n\n    case \"VariableDeclarator\":\n      gatherNodeParts(node.id, parts);\n      break;\n\n    case \"FunctionExpression\":\n    case \"FunctionDeclaration\":\n    case \"ClassExpression\":\n    case \"ClassDeclaration\":\n      gatherNodeParts(node.id, parts);\n      break;\n\n    case \"PrivateName\":\n      gatherNodeParts(node.id, parts);\n      break;\n\n    case \"ParenthesizedExpression\":\n      gatherNodeParts(node.expression, parts);\n      break;\n\n    case \"UnaryExpression\":\n    case \"UpdateExpression\":\n      gatherNodeParts(node.argument, parts);\n      break;\n\n    case \"MetaProperty\":\n      gatherNodeParts(node.meta, parts);\n      gatherNodeParts(node.property, parts);\n      break;\n\n    case \"JSXElement\":\n      gatherNodeParts(node.openingElement, parts);\n      break;\n\n    case \"JSXOpeningElement\":\n      gatherNodeParts(node.name, parts);\n      break;\n\n    case \"JSXFragment\":\n      gatherNodeParts(node.openingFragment, parts);\n      break;\n\n    case \"JSXOpeningFragment\":\n      parts.push(\"Fragment\");\n      break;\n\n    case \"JSXNamespacedName\":\n      gatherNodeParts(node.namespace, parts);\n      gatherNodeParts(node.name, parts);\n      break;\n  }\n}\n\n//\ninterface CollectVisitorState {\n  assignments: NodePath<t.AssignmentExpression>[];\n  references: NodePath<t.Identifier | t.JSXIdentifier>[];\n  constantViolations: NodePath[];\n}\n\nconst collectorVisitor: Visitor<CollectVisitorState> = {\n  ForStatement(path) {\n    const declar = path.get(\"init\");\n    // delegate block scope handling to the `BlockScoped` method\n    if (declar.isVar()) {\n      const { scope } = path;\n      const parentScope = scope.getFunctionParent() || scope.getProgramParent();\n      parentScope.registerBinding(\"var\", declar);\n    }\n  },\n\n  Declaration(path) {\n    // delegate block scope handling to the `BlockScoped` method\n    if (path.isBlockScoped()) return;\n\n    // delegate import handing to the `ImportDeclaration` method\n    if (path.isImportDeclaration()) return;\n\n    // this will be hit again once we traverse into it after this iteration\n    if (path.isExportDeclaration()) return;\n\n    // we've ran into a declaration!\n    const parent =\n      path.scope.getFunctionParent() || path.scope.getProgramParent();\n    parent.registerDeclaration(path);\n  },\n\n  ImportDeclaration(path) {\n    // import may only appear in the top level or inside a module/namespace (for TS/flow)\n    const parent = path.scope.getBlockParent();\n\n    parent.registerDeclaration(path);\n  },\n\n  ReferencedIdentifier(path, state) {\n    state.references.push(path);\n  },\n\n  ForXStatement(path, state) {\n    const left = path.get(\"left\");\n    if (left.isPattern() || left.isIdentifier()) {\n      state.constantViolations.push(path);\n    }\n    // delegate block scope handling to the `BlockScoped` method\n    else if (left.isVar()) {\n      const { scope } = path;\n      const parentScope = scope.getFunctionParent() || scope.getProgramParent();\n      parentScope.registerBinding(\"var\", left);\n    }\n  },\n\n  ExportDeclaration: {\n    exit(path) {\n      const { node, scope } = path;\n      // ExportAllDeclaration does not have `declaration`\n      if (isExportAllDeclaration(node)) return;\n      const declar = node.declaration;\n      if (isClassDeclaration(declar) || isFunctionDeclaration(declar)) {\n        const id = declar.id;\n        if (!id) return;\n\n        const binding = scope.getBinding(id.name);\n        binding?.reference(path);\n      } else if (isVariableDeclaration(declar)) {\n        for (const decl of declar.declarations) {\n          for (const name of Object.keys(getBindingIdentifiers(decl))) {\n            const binding = scope.getBinding(name);\n            binding?.reference(path);\n          }\n        }\n      }\n    },\n  },\n\n  LabeledStatement(path) {\n    path.scope.getBlockParent().registerDeclaration(path);\n  },\n\n  AssignmentExpression(path, state) {\n    state.assignments.push(path);\n  },\n\n  UpdateExpression(path, state) {\n    state.constantViolations.push(path);\n  },\n\n  UnaryExpression(path, state) {\n    if (path.node.operator === \"delete\") {\n      state.constantViolations.push(path);\n    }\n  },\n\n  BlockScoped(path) {\n    let scope = path.scope;\n    if (scope.path === path) scope = scope.parent;\n\n    const parent = scope.getBlockParent();\n    parent.registerDeclaration(path);\n\n    // Register class identifier in class' scope if this is a class declaration.\n    if (path.isClassDeclaration() && path.node.id) {\n      const id = path.node.id;\n      const name = id.name;\n\n      path.scope.bindings[name] = path.scope.parent.getBinding(name);\n    }\n  },\n\n  CatchClause(path) {\n    path.scope.registerBinding(\"let\", path);\n  },\n\n  Function(path) {\n    const params: Array<NodePath> = path.get(\"params\");\n    for (const param of params) {\n      path.scope.registerBinding(\"param\", param);\n    }\n\n    // Register function expression id after params. When the id\n    // collides with a function param, the id effectively can't be\n    // referenced: here we registered it as a constantViolation\n    if (\n      path.isFunctionExpression() &&\n      path.has(\"id\") &&\n      // @ts-expect-error Fixme: document symbol ast properties\n      !path.get(\"id\").node[NOT_LOCAL_BINDING]\n    ) {\n      path.scope.registerBinding(\"local\", path.get(\"id\"), path);\n    }\n  },\n\n  ClassExpression(path) {\n    if (\n      path.has(\"id\") &&\n      // @ts-expect-error Fixme: document symbol ast properties\n      !path.get(\"id\").node[NOT_LOCAL_BINDING]\n    ) {\n      path.scope.registerBinding(\"local\", path);\n    }\n  },\n};\n\nlet uid = 0;\n\nexport type { Binding };\n\nexport default class Scope {\n  uid;\n\n  path: NodePath;\n  block: t.Pattern | t.Scopable;\n\n  labels;\n  inited;\n\n  bindings: { [name: string]: Binding };\n  references: { [name: string]: true };\n  globals: { [name: string]: t.Identifier | t.JSXIdentifier };\n  uids: { [name: string]: boolean };\n  data: { [key: string | symbol]: unknown };\n  crawling: boolean;\n\n  /**\n   * This searches the current \"scope\" and collects all references/bindings\n   * within.\n   */\n  constructor(path: NodePath<t.Pattern | t.Scopable>) {\n    const { node } = path;\n    const cached = scopeCache.get(node);\n    // Sometimes, a scopable path is placed higher in the AST tree.\n    // In these cases, have to create a new Scope.\n    if (cached?.path === path) {\n      return cached;\n    }\n    scopeCache.set(node, this);\n\n    this.uid = uid++;\n\n    this.block = node;\n    this.path = path;\n\n    this.labels = new Map();\n    this.inited = false;\n  }\n\n  /**\n   * Globals.\n   */\n\n  static globals = Object.keys(globals.builtin);\n\n  /**\n   * Variables available in current context.\n   */\n\n  static contextVariables = [\"arguments\", \"undefined\", \"Infinity\", \"NaN\"];\n\n  get parent() {\n    let parent,\n      path = this.path;\n    do {\n      // Skip method scope if coming from inside computed key or decorator expression\n      const shouldSkip = path.key === \"key\" || path.listKey === \"decorators\";\n      path = path.parentPath;\n      if (shouldSkip && path.isMethod()) path = path.parentPath;\n      if (path && path.isScope()) parent = path;\n    } while (path && !parent);\n\n    return parent?.scope;\n  }\n\n  get parentBlock() {\n    return this.path.parent;\n  }\n\n  get hub() {\n    return this.path.hub;\n  }\n\n  traverse<S>(\n    node: t.Node | t.Node[],\n    opts: TraverseOptions<S>,\n    state: S,\n  ): void;\n  traverse(node: t.Node | t.Node[], opts?: TraverseOptions, state?: any): void;\n  /**\n   * Traverse node with current scope and path.\n   */\n  traverse<S>(node: any, opts: any, state?: S) {\n    traverse(node, opts, this, state, this.path);\n  }\n\n  /**\n   * Generate a unique identifier and add it to the current scope.\n   */\n\n  generateDeclaredUidIdentifier(name?: string) {\n    const id = this.generateUidIdentifier(name);\n    this.push({ id });\n    return cloneNode(id);\n  }\n\n  /**\n   * Generate a unique identifier.\n   */\n\n  generateUidIdentifier(name?: string) {\n    return identifier(this.generateUid(name));\n  }\n\n  /**\n   * Generate a unique `_id1` binding.\n   */\n\n  generateUid(name: string = \"temp\"): string {\n    name = toIdentifier(name)\n      .replace(/^_+/, \"\")\n      .replace(/[0-9]+$/g, \"\");\n\n    let uid;\n    let i = 1;\n    do {\n      uid = this._generateUid(name, i);\n      i++;\n    } while (\n      this.hasLabel(uid) ||\n      this.hasBinding(uid) ||\n      this.hasGlobal(uid) ||\n      this.hasReference(uid)\n    );\n\n    const program = this.getProgramParent();\n    program.references[uid] = true;\n    program.uids[uid] = true;\n\n    return uid;\n  }\n\n  /**\n   * Generate an `_id1`.\n   */\n\n  _generateUid(name: string, i: number) {\n    let id = name;\n    if (i > 1) id += i;\n    return `_${id}`;\n  }\n\n  generateUidBasedOnNode(node: t.Node, defaultName?: string) {\n    const parts: NodePart[] = [];\n    gatherNodeParts(node, parts);\n\n    let id = parts.join(\"$\");\n    id = id.replace(/^_/, \"\") || defaultName || \"ref\";\n\n    return this.generateUid(id.slice(0, 20));\n  }\n\n  /**\n   * Generate a unique identifier based on a node.\n   */\n\n  generateUidIdentifierBasedOnNode(node: t.Node, defaultName?: string) {\n    return identifier(this.generateUidBasedOnNode(node, defaultName));\n  }\n\n  /**\n   * Determine whether evaluating the specific input `node` is a consequenceless reference. ie.\n   * evaluating it wont result in potentially arbitrary code from being ran. The following are\n   * allowed and determined not to cause side effects:\n   *\n   *  - `this` expressions\n   *  - `super` expressions\n   *  - Bound identifiers\n   */\n\n  isStatic(node: t.Node): boolean {\n    if (isThisExpression(node) || isSuper(node) || isTopicReference(node)) {\n      return true;\n    }\n\n    if (isIdentifier(node)) {\n      const binding = this.getBinding(node.name);\n      if (binding) {\n        return binding.constant;\n      } else {\n        return this.hasBinding(node.name);\n      }\n    }\n\n    return false;\n  }\n\n  /**\n   * Possibly generate a memoised identifier if it is not static and has consequences.\n   */\n\n  maybeGenerateMemoised(node: t.Node, dontPush?: boolean) {\n    if (this.isStatic(node)) {\n      return null;\n    } else {\n      const id = this.generateUidIdentifierBasedOnNode(node);\n      if (!dontPush) {\n        this.push({ id });\n        return cloneNode(id);\n      }\n      return id;\n    }\n  }\n\n  checkBlockScopedCollisions(\n    local: Binding,\n    kind: BindingKind,\n    name: string,\n    id: any,\n  ) {\n    // ignore parameters\n    if (kind === \"param\") return;\n\n    // Ignore existing binding if it's the name of the current function or\n    // class expression\n    if (local.kind === \"local\") return;\n\n    const duplicate =\n      // don't allow duplicate bindings to exist alongside\n      kind === \"let\" ||\n      local.kind === \"let\" ||\n      local.kind === \"const\" ||\n      local.kind === \"module\" ||\n      // don't allow a local of param with a kind of let\n      (local.kind === \"param\" && kind === \"const\");\n\n    if (duplicate) {\n      throw this.hub.buildError(\n        id,\n        `Duplicate declaration \"${name}\"`,\n        TypeError,\n      );\n    }\n  }\n\n  rename(oldName: string, newName?: string, block?: t.Pattern | t.Scopable) {\n    const binding = this.getBinding(oldName);\n    if (binding) {\n      newName = newName || this.generateUidIdentifier(oldName).name;\n      return new Renamer(binding, oldName, newName).rename(block);\n    }\n  }\n\n  /** @deprecated Not used in our codebase */\n  _renameFromMap(\n    map: Record<string | symbol, unknown>,\n    oldName: string | symbol,\n    newName: string | symbol,\n    value: unknown,\n  ) {\n    if (map[oldName]) {\n      map[newName] = value;\n      map[oldName] = null;\n    }\n  }\n\n  dump() {\n    const sep = \"-\".repeat(60);\n    console.log(sep);\n    let scope: Scope = this;\n    do {\n      console.log(\"#\", scope.block.type);\n      for (const name of Object.keys(scope.bindings)) {\n        const binding = scope.bindings[name];\n        console.log(\" -\", name, {\n          constant: binding.constant,\n          references: binding.references,\n          violations: binding.constantViolations.length,\n          kind: binding.kind,\n        });\n      }\n    } while ((scope = scope.parent));\n    console.log(sep);\n  }\n\n  // TODO: (Babel 8) Split i in two parameters, and use an object of flags\n  toArray(\n    node: t.Node,\n    i?: number | boolean,\n    arrayLikeIsIterable?: boolean | void,\n  ) {\n    if (isIdentifier(node)) {\n      const binding = this.getBinding(node.name);\n      if (binding?.constant && binding.path.isGenericType(\"Array\")) {\n        return node;\n      }\n    }\n\n    if (isArrayExpression(node)) {\n      return node;\n    }\n\n    if (isIdentifier(node, { name: \"arguments\" })) {\n      return callExpression(\n        memberExpression(\n          memberExpression(\n            memberExpression(identifier(\"Array\"), identifier(\"prototype\")),\n            identifier(\"slice\"),\n          ),\n          identifier(\"call\"),\n        ),\n        [node],\n      );\n    }\n\n    let helperName;\n    const args = [node];\n    if (i === true) {\n      // Used in array-spread to create an array.\n      helperName = \"toConsumableArray\";\n    } else if (i) {\n      args.push(numericLiteral(i));\n\n      // Used in array-rest to create an array from a subset of an iterable.\n      helperName = \"slicedToArray\";\n      // TODO if (this.hub.isLoose(\"es6.forOf\")) helperName += \"-loose\";\n    } else {\n      // Used in array-rest to create an array\n      helperName = \"toArray\";\n    }\n\n    if (arrayLikeIsIterable) {\n      args.unshift(this.hub.addHelper(helperName));\n      helperName = \"maybeArrayLike\";\n    }\n\n    // @ts-expect-error todo(flow->ts): t.Node is not valid to use in args, function argument typeneeds to be clarified\n    return callExpression(this.hub.addHelper(helperName), args);\n  }\n\n  hasLabel(name: string) {\n    return !!this.getLabel(name);\n  }\n\n  getLabel(name: string) {\n    return this.labels.get(name);\n  }\n\n  registerLabel(path: NodePath<t.LabeledStatement>) {\n    this.labels.set(path.node.label.name, path);\n  }\n\n  registerDeclaration(path: NodePath) {\n    if (path.isLabeledStatement()) {\n      this.registerLabel(path);\n    } else if (path.isFunctionDeclaration()) {\n      this.registerBinding(\"hoisted\", path.get(\"id\"), path);\n    } else if (path.isVariableDeclaration()) {\n      const declarations = path.get(\"declarations\");\n      const { kind } = path.node;\n      for (const declar of declarations) {\n        this.registerBinding(kind === \"using\" ? \"const\" : kind, declar);\n      }\n    } else if (path.isClassDeclaration()) {\n      if (path.node.declare) return;\n      this.registerBinding(\"let\", path);\n    } else if (path.isImportDeclaration()) {\n      const specifiers = path.get(\"specifiers\");\n      for (const specifier of specifiers) {\n        this.registerBinding(\"module\", specifier);\n      }\n    } else if (path.isExportDeclaration()) {\n      // todo: improve babel-types\n      const declar = path.get(\"declaration\") as NodePath;\n      if (\n        declar.isClassDeclaration() ||\n        declar.isFunctionDeclaration() ||\n        declar.isVariableDeclaration()\n      ) {\n        this.registerDeclaration(declar);\n      }\n    } else {\n      this.registerBinding(\"unknown\", path);\n    }\n  }\n\n  buildUndefinedNode() {\n    return unaryExpression(\"void\", numericLiteral(0), true);\n  }\n\n  registerConstantViolation(path: NodePath) {\n    const ids = path.getBindingIdentifiers();\n    for (const name of Object.keys(ids)) {\n      const binding = this.getBinding(name);\n      if (binding) binding.reassign(path);\n    }\n  }\n\n  registerBinding(\n    kind: Binding[\"kind\"],\n    path: NodePath,\n    bindingPath: NodePath = path,\n  ) {\n    if (!kind) throw new ReferenceError(\"no `kind`\");\n\n    if (path.isVariableDeclaration()) {\n      const declarators: Array<NodePath> = path.get(\"declarations\");\n      for (const declar of declarators) {\n        this.registerBinding(kind, declar);\n      }\n      return;\n    }\n\n    const parent = this.getProgramParent();\n    const ids = path.getOuterBindingIdentifiers(true);\n\n    for (const name of Object.keys(ids)) {\n      parent.references[name] = true;\n\n      for (const id of ids[name]) {\n        const local = this.getOwnBinding(name);\n\n        if (local) {\n          // same identifier so continue safely as we're likely trying to register it\n          // multiple times\n          if (local.identifier === id) continue;\n\n          this.checkBlockScopedCollisions(local, kind, name, id);\n        }\n\n        // A redeclaration of an existing variable is a modification\n        if (local) {\n          this.registerConstantViolation(bindingPath);\n        } else {\n          this.bindings[name] = new Binding({\n            identifier: id,\n            scope: this,\n            path: bindingPath,\n            kind: kind,\n          });\n        }\n      }\n    }\n  }\n\n  addGlobal(node: t.Identifier | t.JSXIdentifier) {\n    this.globals[node.name] = node;\n  }\n\n  hasUid(name: string): boolean {\n    let scope: Scope = this;\n\n    do {\n      if (scope.uids[name]) return true;\n    } while ((scope = scope.parent));\n\n    return false;\n  }\n\n  hasGlobal(name: string): boolean {\n    let scope: Scope = this;\n\n    do {\n      if (scope.globals[name]) return true;\n    } while ((scope = scope.parent));\n\n    return false;\n  }\n\n  hasReference(name: string): boolean {\n    return !!this.getProgramParent().references[name];\n  }\n\n  isPure(node: t.Node, constantsOnly?: boolean): boolean {\n    if (isIdentifier(node)) {\n      const binding = this.getBinding(node.name);\n      if (!binding) return false;\n      if (constantsOnly) return binding.constant;\n      return true;\n    } else if (\n      isThisExpression(node) ||\n      isMetaProperty(node) ||\n      isTopicReference(node) ||\n      isPrivateName(node)\n    ) {\n      return true;\n    } else if (isClass(node)) {\n      if (node.superClass && !this.isPure(node.superClass, constantsOnly)) {\n        return false;\n      }\n      if (node.decorators?.length > 0) {\n        return false;\n      }\n      return this.isPure(node.body, constantsOnly);\n    } else if (isClassBody(node)) {\n      for (const method of node.body) {\n        if (!this.isPure(method, constantsOnly)) return false;\n      }\n      return true;\n    } else if (isBinary(node)) {\n      return (\n        this.isPure(node.left, constantsOnly) &&\n        this.isPure(node.right, constantsOnly)\n      );\n    } else if (isArrayExpression(node) || isTupleExpression(node)) {\n      for (const elem of node.elements) {\n        if (elem !== null && !this.isPure(elem, constantsOnly)) return false;\n      }\n      return true;\n    } else if (isObjectExpression(node) || isRecordExpression(node)) {\n      for (const prop of node.properties) {\n        if (!this.isPure(prop, constantsOnly)) return false;\n      }\n      return true;\n    } else if (isMethod(node)) {\n      if (node.computed && !this.isPure(node.key, constantsOnly)) return false;\n      if (node.decorators?.length > 0) {\n        return false;\n      }\n      return true;\n    } else if (isProperty(node)) {\n      // @ts-expect-error todo(flow->ts): computed in not present on private properties\n      if (node.computed && !this.isPure(node.key, constantsOnly)) return false;\n      if (node.decorators?.length > 0) {\n        return false;\n      }\n      if (isObjectProperty(node) || node.static) {\n        if (node.value !== null && !this.isPure(node.value, constantsOnly)) {\n          return false;\n        }\n      }\n      return true;\n    } else if (isUnaryExpression(node)) {\n      return this.isPure(node.argument, constantsOnly);\n    } else if (isTaggedTemplateExpression(node)) {\n      return (\n        matchesPattern(node.tag, \"String.raw\") &&\n        !this.hasBinding(\"String\", true) &&\n        this.isPure(node.quasi, constantsOnly)\n      );\n    } else if (isTemplateLiteral(node)) {\n      for (const expression of node.expressions) {\n        if (!this.isPure(expression, constantsOnly)) return false;\n      }\n      return true;\n    } else {\n      return isPureish(node);\n    }\n  }\n\n  /**\n   * Set some arbitrary data on the current scope.\n   */\n\n  setData(key: string | symbol, val: any) {\n    return (this.data[key] = val);\n  }\n\n  /**\n   * Recursively walk up scope tree looking for the data `key`.\n   */\n\n  getData(key: string | symbol): any {\n    let scope: Scope = this;\n    do {\n      const data = scope.data[key];\n      if (data != null) return data;\n    } while ((scope = scope.parent));\n  }\n\n  /**\n   * Recursively walk up scope tree looking for the data `key` and if it exists,\n   * remove it.\n   */\n\n  removeData(key: string) {\n    let scope: Scope = this;\n    do {\n      const data = scope.data[key];\n      if (data != null) scope.data[key] = null;\n    } while ((scope = scope.parent));\n  }\n\n  init() {\n    if (!this.inited) {\n      this.inited = true;\n      this.crawl();\n    }\n  }\n\n  crawl() {\n    const path = this.path;\n\n    this.references = Object.create(null);\n    this.bindings = Object.create(null);\n    this.globals = Object.create(null);\n    this.uids = Object.create(null);\n    this.data = Object.create(null);\n\n    const programParent = this.getProgramParent();\n    if (programParent.crawling) return;\n\n    const state: CollectVisitorState = {\n      references: [],\n      constantViolations: [],\n      assignments: [],\n    };\n\n    this.crawling = true;\n    // traverse does not visit the root node, here we explicitly collect\n    // root node binding info when the root is not a Program.\n    if (path.type !== \"Program\" && collectorVisitor._exploded) {\n      // @ts-expect-error when collectorVisitor is exploded, `enter` always exists\n      for (const visit of collectorVisitor.enter) {\n        visit(path, state);\n      }\n      const typeVisitors = collectorVisitor[path.type];\n      if (typeVisitors) {\n        // @ts-expect-error when collectorVisitor is exploded, `enter` always exists\n        for (const visit of typeVisitors.enter) {\n          visit(path, state);\n        }\n      }\n    }\n    path.traverse(collectorVisitor, state);\n    this.crawling = false;\n\n    // register assignments\n    for (const path of state.assignments) {\n      // register undeclared bindings as globals\n      const ids = path.getBindingIdentifiers();\n      for (const name of Object.keys(ids)) {\n        if (path.scope.getBinding(name)) continue;\n        programParent.addGlobal(ids[name]);\n      }\n\n      // register as constant violation\n      path.scope.registerConstantViolation(path);\n    }\n\n    // register references\n    for (const ref of state.references) {\n      const binding = ref.scope.getBinding(ref.node.name);\n      if (binding) {\n        binding.reference(ref);\n      } else {\n        programParent.addGlobal(ref.node);\n      }\n    }\n\n    // register constant violations\n    for (const path of state.constantViolations) {\n      path.scope.registerConstantViolation(path);\n    }\n  }\n\n  push(opts: {\n    id: t.LVal;\n    init?: t.Expression;\n    unique?: boolean;\n    _blockHoist?: number | undefined;\n    kind?: \"var\" | \"let\" | \"const\";\n  }) {\n    let path = this.path;\n\n    if (path.isPattern()) {\n      path = this.getPatternParent().path;\n    } else if (!path.isBlockStatement() && !path.isProgram()) {\n      path = this.getBlockParent().path;\n    }\n\n    if (path.isSwitchStatement()) {\n      path = (this.getFunctionParent() || this.getProgramParent()).path;\n    }\n\n    if (path.isLoop() || path.isCatchClause() || path.isFunction()) {\n      // @ts-expect-error TS can not infer NodePath<Loop> | NodePath<CatchClause> as NodePath<Loop | CatchClause>\n      path.ensureBlock();\n      // @ts-expect-error todo(flow->ts): improve types\n      path = path.get(\"body\");\n    }\n\n    const unique = opts.unique;\n    const kind = opts.kind || \"var\";\n    const blockHoist = opts._blockHoist == null ? 2 : opts._blockHoist;\n\n    const dataKey = `declaration:${kind}:${blockHoist}`;\n    let declarPath = !unique && path.getData(dataKey);\n\n    if (!declarPath) {\n      const declar = variableDeclaration(kind, []);\n      // @ts-expect-error todo(flow->ts): avoid modifying nodes\n      declar._blockHoist = blockHoist;\n\n      [declarPath] = (path as NodePath<t.BlockStatement>).unshiftContainer(\n        \"body\",\n        [declar],\n      );\n      if (!unique) path.setData(dataKey, declarPath);\n    }\n\n    const declarator = variableDeclarator(opts.id, opts.init);\n    const len = declarPath.node.declarations.push(declarator);\n    path.scope.registerBinding(kind, declarPath.get(\"declarations\")[len - 1]);\n  }\n\n  /**\n   * Walk up to the top of the scope tree and get the `Program`.\n   */\n\n  getProgramParent() {\n    let scope: Scope = this;\n    do {\n      if (scope.path.isProgram()) {\n        return scope;\n      }\n    } while ((scope = scope.parent));\n    throw new Error(\"Couldn't find a Program\");\n  }\n\n  /**\n   * Walk up the scope tree until we hit either a Function or return null.\n   */\n\n  getFunctionParent(): Scope | null {\n    let scope: Scope = this;\n    do {\n      if (scope.path.isFunctionParent()) {\n        return scope;\n      }\n    } while ((scope = scope.parent));\n    return null;\n  }\n\n  /**\n   * Walk up the scope tree until we hit either a BlockStatement/Loop/Program/Function/Switch or reach the\n   * very top and hit Program.\n   */\n\n  getBlockParent() {\n    let scope: Scope = this;\n    do {\n      if (scope.path.isBlockParent()) {\n        return scope;\n      }\n    } while ((scope = scope.parent));\n    throw new Error(\n      \"We couldn't find a BlockStatement, For, Switch, Function, Loop or Program...\",\n    );\n  }\n\n  /**\n   * Walk up from a pattern scope (function param initializer) until we hit a non-pattern scope,\n   * then returns its block parent\n   * @returns An ancestry scope whose path is a block parent\n   */\n  getPatternParent() {\n    let scope: Scope = this;\n    do {\n      if (!scope.path.isPattern()) {\n        return scope.getBlockParent();\n      }\n    } while ((scope = scope.parent.parent));\n    throw new Error(\n      \"We couldn't find a BlockStatement, For, Switch, Function, Loop or Program...\",\n    );\n  }\n\n  /**\n   * Walks the scope tree and gathers **all** bindings.\n   */\n\n  getAllBindings(): Record<string, Binding> {\n    const ids = Object.create(null);\n\n    let scope: Scope = this;\n    do {\n      for (const key of Object.keys(scope.bindings)) {\n        if (key in ids === false) {\n          ids[key] = scope.bindings[key];\n        }\n      }\n      scope = scope.parent;\n    } while (scope);\n\n    return ids;\n  }\n\n  /**\n   * Walks the scope tree and gathers all declarations of `kind`.\n   */\n\n  getAllBindingsOfKind(...kinds: string[]): Record<string, Binding> {\n    const ids = Object.create(null);\n\n    for (const kind of kinds) {\n      let scope: Scope = this;\n      do {\n        for (const name of Object.keys(scope.bindings)) {\n          const binding = scope.bindings[name];\n          if (binding.kind === kind) ids[name] = binding;\n        }\n        scope = scope.parent;\n      } while (scope);\n    }\n\n    return ids;\n  }\n\n  bindingIdentifierEquals(name: string, node: t.Node): boolean {\n    return this.getBindingIdentifier(name) === node;\n  }\n\n  getBinding(name: string): Binding | undefined {\n    let scope: Scope = this;\n    let previousPath;\n\n    do {\n      const binding = scope.getOwnBinding(name);\n      if (binding) {\n        // Check if a pattern is a part of parameter expressions.\n        // Note: for performance reason we skip checking previousPath.parentPath.isFunction()\n        // because `scope.path` is validated as scope in packages/babel-types/src/validators/isScope.js\n        // That is, if a scope path is pattern, its parent must be Function/CatchClause\n\n        // Spec 9.2.10.28: The closure created by this expression should not have visibility of\n        // declarations in the function body. If the binding is not a `param`-kind (as function parameters)\n        // or `local`-kind (as id in function expression),\n        // then it must be defined inside the function body, thus it should be skipped\n        if (\n          previousPath?.isPattern() &&\n          binding.kind !== \"param\" &&\n          binding.kind !== \"local\"\n        ) {\n          // do nothing\n        } else {\n          return binding;\n        }\n      } else if (\n        !binding &&\n        name === \"arguments\" &&\n        scope.path.isFunction() &&\n        !scope.path.isArrowFunctionExpression()\n      ) {\n        break;\n      }\n      previousPath = scope.path;\n    } while ((scope = scope.parent));\n  }\n\n  getOwnBinding(name: string): Binding | undefined {\n    return this.bindings[name];\n  }\n\n  // todo: return probably can be undefined…\n  getBindingIdentifier(name: string): t.Identifier {\n    return this.getBinding(name)?.identifier;\n  }\n\n  // todo: flow->ts return probably can be undefined\n  getOwnBindingIdentifier(name: string): t.Identifier {\n    const binding = this.bindings[name];\n    return binding?.identifier;\n  }\n\n  hasOwnBinding(name: string) {\n    return !!this.getOwnBinding(name);\n  }\n\n  hasBinding(name: string, noGlobals?: boolean) {\n    if (!name) return false;\n    if (this.hasOwnBinding(name)) return true;\n    if (this.parentHasBinding(name, noGlobals)) return true;\n    if (this.hasUid(name)) return true;\n    if (!noGlobals && Scope.globals.includes(name)) return true;\n    if (!noGlobals && Scope.contextVariables.includes(name)) return true;\n    return false;\n  }\n\n  parentHasBinding(name: string, noGlobals?: boolean) {\n    return this.parent?.hasBinding(name, noGlobals);\n  }\n\n  /**\n   * Move a binding of `name` to another `scope`.\n   */\n\n  moveBindingTo(name: string, scope: Scope) {\n    const info = this.getBinding(name);\n    if (info) {\n      info.scope.removeOwnBinding(name);\n      info.scope = scope;\n      scope.bindings[name] = info;\n    }\n  }\n\n  removeOwnBinding(name: string) {\n    delete this.bindings[name];\n  }\n\n  removeBinding(name: string) {\n    // clear literal binding\n    this.getBinding(name)?.scope.removeOwnBinding(name);\n\n    // clear uids with this name - https://github.com/babel/babel/issues/2101\n    let scope: Scope = this;\n    do {\n      if (scope.uids[name]) {\n        scope.uids[name] = false;\n      }\n    } while ((scope = scope.parent));\n  }\n}\n"],"mappings":"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"}

Youez - 2016 - github.com/yon3zu
LinuXploit