@@ -110,7 +110,8 @@ module.exports = {
110110
111111 // handle "unused" mode
112112 if ( ! noneUnusedMode ) {
113- let scope = context . getScope ( ) ;
113+ let sourceCode = getSourceCode ( context ) ;
114+ let scope = getScope ( context , sourceCode , node ) ;
114115 let checkParamNames = checkParamIds . map ( function getName ( paramId ) {
115116 return paramId . name ;
116117 } ) ;
@@ -301,7 +302,9 @@ module.exports = {
301302 return ;
302303 }
303304
304- var globalArrow = currentlyInGlobalScope ( context . parserOptions , context . getScope ( ) ) ;
305+ var sourceCode = getSourceCode ( context ) ;
306+ var scope = getScope ( context , sourceCode , node ) ;
307+ var globalArrow = currentlyInGlobalScope ( context . parserOptions , scope ) ;
305308 var globalArrowDeclaration = (
306309 globalArrow &&
307310 node . parent . type == "VariableDeclarator"
@@ -414,12 +417,13 @@ module.exports = {
414417 var sequenceMode = defaultsOnly || ! ( "sequence" in extraOptions ) || extraOptions . sequence === true ;
415418 var ignoreTrivial = ! ( extraOptions && extraOptions . trivial === true ) ;
416419
417- var sourceCode = context . getSourceCode ( ) ;
420+ var sourceCode = getSourceCode ( context ) ;
418421 var ternaryBodyStack = new Map ( ) ;
419422
420423 return {
421424 "ConditionalExpression:exit" : function exit ( node ) {
422- var parentArrow = getParentArrowFunction ( context . getAncestors ( ) , /*onlyFromBody=*/ true ) ;
425+ var ancestors = getAncestors ( context , sourceCode , node ) ;
426+ var parentArrow = getParentArrowFunction ( ancestors , /*onlyFromBody=*/ true ) ;
423427 if ( parentArrow ) {
424428 if ( ! ternaryBodyStack . has ( parentArrow ) ) {
425429 ternaryBodyStack . set ( parentArrow , [ ] ) ;
@@ -562,7 +566,9 @@ module.exports = {
562566
563567 return {
564568 "ThisExpression" : function enter ( node ) {
565- var parentArrow = getParentArrowFunction ( context . getAncestors ( ) ) ;
569+ var sourceCode = getSourceCode ( context ) ;
570+ var ancestors = getAncestors ( context , sourceCode , node ) ;
571+ var parentArrow = getParentArrowFunction ( ancestors ) ;
566572 thisFoundIn . add ( parentArrow ) ;
567573 } ,
568574 "ArrowFunctionExpression:exit" : function exit ( node ) {
@@ -571,7 +577,9 @@ module.exports = {
571577 return ;
572578 }
573579
574- var globalArrow = currentlyInGlobalScope ( context . parserOptions , context . getScope ( ) ) ;
580+ var sourceCode = getSourceCode ( context ) ;
581+ var scope = getScope ( context , sourceCode , node ) ;
582+ var globalArrow = currentlyInGlobalScope ( context . parserOptions , scope ) ;
575583 var foundThis = thisFoundIn . has ( node ) ;
576584
577585 // `this` found in arrow function?
@@ -605,7 +613,8 @@ module.exports = {
605613
606614 // need to track nested `this`?
607615 if ( nestedThis || neverGlobalThis ) {
608- let parentArrow = getParentArrowFunction ( context . getAncestors ( ) ) ;
616+ let ancestors = getAncestors ( context , sourceCode , node ) ;
617+ let parentArrow = getParentArrowFunction ( ancestors ) ;
609618 if ( parentArrow ) {
610619 thisFoundIn . add ( parentArrow ) ;
611620 }
@@ -801,3 +810,30 @@ function currentlyInGlobalScope(parserOptions,scope) {
801810 )
802811 ) ;
803812}
813+
814+ var getSourceCode = context => {
815+ getSourceCode = (
816+ context . sourceCode ?
817+ context => context . sourceCode :
818+ context => context . getSourceCode ( )
819+ ) ;
820+ return getSourceCode ( context ) ;
821+ } ;
822+
823+ var getScope = ( context , sourceCode , node ) => {
824+ getScope = (
825+ sourceCode . getScope ?
826+ ( context , sourceCode , node ) => sourceCode . getScope ( node ) :
827+ ( context , sourceCode , node ) => context . getScope ( )
828+ ) ;
829+ return getScope ( context , sourceCode , node ) ;
830+ } ;
831+
832+ var getAncestors = ( context , sourceCode , node ) => {
833+ getAncestors = (
834+ sourceCode . getAncestors ?
835+ ( context , sourceCode , node ) => sourceCode . getAncestors ( node ) :
836+ ( context , sourceCode , node ) => context . getAncestors ( )
837+ ) ;
838+ return getAncestors ( context , sourceCode , node ) ;
839+ } ;
0 commit comments