@@ -80,6 +80,12 @@ t.declareModule("jQuery", [
8080 t . namespace ( "resources" , [
8181 t . namespace ( "isBundle" , callExpressionGeneratorFix ( { // https://github.com/UI5/linter/issues/657
8282 moduleName : "sap/base/i18n/ResourceBundle" ,
83+ validateArguments ( ctx , _ , arg1 ) {
84+ if ( ! arg1 ) {
85+ return false ;
86+ }
87+ return true ;
88+ } ,
8389 generator ( _ctx , [ moduleIdentifier ] , arg1 ) {
8490 return `${ arg1 . trim ( ) } instanceof ${ moduleIdentifier } ` ;
8591 } ,
@@ -205,12 +211,15 @@ t.declareModule("jQuery", [
205211 */
206212 t . namespace ( "extend" , callExpressionGeneratorFix ( {
207213 moduleName : "sap/base/util/merge" ,
208- validateArguments ( ctx , _ , arg1 ) {
209- if ( arg1 . kind !== ts . SyntaxKind . TrueKeyword ) {
214+ validateArguments ( ctx , _ , arg1 , arg2 ) {
215+ if ( arg1 ? .kind !== ts . SyntaxKind . TrueKeyword ) {
210216 // If the first argument is not "true" (indicating a deep merge),
211217 // do not apply the fix
212218 return false ;
213219 }
220+ if ( ! arg2 ) {
221+ return false ;
222+ }
214223 return true ;
215224 } ,
216225 generator ( ctx , [ moduleIdentifierName ] , _ , arg2 , arg3 ) {
@@ -653,6 +662,13 @@ t.declareModule("jQuery", [
653662 } ,
654663 } ) ) ,
655664 t . namespace ( "isEqualNode" , callExpressionGeneratorFix ( {
665+ validateArguments ( ctx , _ , arg1 , arg2 ) {
666+ if ( ! arg1 || ! arg2 ) {
667+ // If either argument is missing, do not apply the fix
668+ return false ;
669+ }
670+ return true ;
671+ } ,
656672 generator : ( ctx , _ , arg1 , arg2 ) => {
657673 return `!!${ arg1 . trim ( ) } ?.isEqualNode(${ arg2 . trim ( ) } )` ;
658674 } ,
@@ -725,7 +741,11 @@ t.declareModule("jQuery", [
725741 } ,
726742 } ) ) ,
727743 t . namespace ( "delayedCall" , callExpressionGeneratorFix < { isFnString : boolean } > ( {
728- validateArguments : ( ctx , _ , _timeout , _objCtx , fnName ) => {
744+ validateArguments : ( ctx , _ , timeout , objCtx , fnName ) => {
745+ if ( ! timeout || ! objCtx || ! fnName ) {
746+ // If the function name is not provided, do not apply the fix
747+ return false ;
748+ }
729749 ctx . isFnString = ! ! fnName && ts . isStringLiteralLike ( fnName ) ;
730750 return true ;
731751 } ,
@@ -745,7 +765,11 @@ t.declareModule("jQuery", [
745765 } ) ) ,
746766 t . namespace ( "intervalCall" , callExpressionGeneratorFix < { isFnString : boolean } > ( {
747767 globalName : "setInterval" ,
748- validateArguments : ( ctx , _ , _timeout , _objCtx , fnName ) => {
768+ validateArguments : ( ctx , _ , timeout , objCtx , fnName ) => {
769+ if ( ! timeout || ! objCtx || ! fnName ) {
770+ // If the function name is not provided, do not apply the fix
771+ return false ;
772+ }
749773 ctx . isFnString = ! ! fnName && ts . isStringLiteralLike ( fnName ) ;
750774 return true ;
751775 } ,
@@ -768,6 +792,13 @@ t.declareModule("jQuery", [
768792 ] ) , // jQuery.sap
769793 // jQuery
770794 t . namespace ( "inArray" , callExpressionGeneratorFix ( {
795+ validateArguments ( ctx , _ , arg1 , arg2 ) {
796+ if ( ! arg1 || ! arg2 ) {
797+ // If either argument is missing, do not apply the fix
798+ return false ;
799+ }
800+ return true ;
801+ } ,
771802 generator : ( ctx , _ , arg1 , arg2 ) => {
772803 return `(${ arg2 . trim ( ) } ? Array.prototype.indexOf.call(${ arg2 . trim ( ) } , ${ arg1 . trim ( ) } ) : -1)` ;
773804 } ,
0 commit comments