Skip to content

Commit

Permalink
getStringValue: Use explicit check for undefined
Browse files Browse the repository at this point in the history
To ensure same behavior is before
  • Loading branch information
matz3 committed Aug 17, 2022
1 parent da93b4d commit 098331c
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 9 deletions.
18 changes: 9 additions & 9 deletions lib/lbt/analyzer/JSModuleAnalyzer.js
Original file line number Diff line number Diff line change
Expand Up @@ -545,7 +545,7 @@ class JSModuleAnalyzer {
const args = node.arguments;
if (args.length > 0) {
const value = getStringValue(args[0]);
if (value) {
if (value !== undefined) {
const name = ModuleName.fromUI5LegacyName(value);
if ( nModuleDeclarations === 1 && !mainModuleFound) {
// if this is the first declaration, then this is the main module declaration
Expand Down Expand Up @@ -579,7 +579,7 @@ class JSModuleAnalyzer {
let name = null;
if ( i < nArgs ) {
const value = getStringValue( args[i] );
if ( value ) {
if ( value !== undefined ) {
name = ModuleName.fromRequireJSName(value);
if ( name === defaultName ) {
// hardcoded name equals the file name, so this definition qualifies as main module definition
Expand Down Expand Up @@ -629,21 +629,21 @@ class JSModuleAnalyzer {
for (let i = 0; i < nArgs; i++) {
const arg = args[i];
const value = getStringValue(arg);
if ( value ) {
if ( value !== undefined ) {
const requiredModuleName = ModuleName.fromUI5LegacyName( value );
info.addDependency(requiredModuleName, conditional);
} else if ( arg.type == Syntax.ConditionalExpression) {
const consequentValue = getStringValue(arg.consequent);
const alternateValue = getStringValue(arg.alternate);
if ( consequentValue ) {
if ( consequentValue !== undefined ) {
const requiredModuleName1 = ModuleName.fromUI5LegacyName( consequentValue );
info.addDependency(requiredModuleName1, true);
}
if ( alternateValue ) {
if ( alternateValue !== undefined ) {
const requiredModuleName2 = ModuleName.fromUI5LegacyName( alternateValue );
info.addDependency(requiredModuleName2, true);
}
if ( !consequentValue || !alternateValue ) {
if ( consequentValue === undefined || alternateValue === undefined ) {
log.verbose("jQuery.sap.require: cannot evaluate dynamic arguments: ", arg && arg.type);
info.dynamicDependencies = true;
}
Expand All @@ -662,7 +662,7 @@ class JSModuleAnalyzer {

if ( i < nArgs ) {
const value = getStringValue(args[i]);
if ( value ) {
if ( value !== undefined ) {
// sap.ui.requireSync does not support relative dependencies
const moduleName = ModuleName.fromRequireJSName( value );
info.addDependency(moduleName, conditional);
Expand All @@ -681,7 +681,7 @@ class JSModuleAnalyzer {
// determine the name of the module
if ( i < nArgs ) {
const value = getStringValue(args[i++]);
if ( value ) {
if ( value !== undefined ) {
const moduleName = ModuleName.fromRequireJSName( value );
info.addSubModule(moduleName);

Expand Down Expand Up @@ -740,7 +740,7 @@ class JSModuleAnalyzer {
// console.log(array);
array.forEach( (item) => {
const value = getStringValue(item);
if ( value ) {
if ( value !== undefined ) {
// ignore special AMD dependencies (require, exports, module)
if ( SPECIAL_AMD_DEPENDENCIES.indexOf(value) >= 0 ) {
return;
Expand Down
2 changes: 2 additions & 0 deletions lib/lbt/utils/ASTUtils.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ function getStringValue(node) {
return node.value;
} else if (isTemplateLiteralWithoutExpression(node)) {
return node?.quasis?.[0]?.value?.cooked;
} else {
return undefined;
}
}

Expand Down

0 comments on commit 098331c

Please sign in to comment.