mirror of
https://github.com/github/codeql.git
synced 2026-01-06 19:20:25 +01:00
Merge branch 'main' into noBin
This commit is contained in:
@@ -669,7 +669,9 @@ public class ASTExtractor {
|
||||
public Label visit(Program nd, Context c) {
|
||||
contextManager.enterContainer(toplevelLabel);
|
||||
|
||||
isStrict = hasUseStrict(nd.getBody());
|
||||
boolean prevIsStrict = isStrict;
|
||||
|
||||
isStrict = isStrict || hasUseStrict(nd.getBody());
|
||||
|
||||
// Add platform-specific globals.
|
||||
scopeManager.addVariables(platform.getPredefinedGlobals());
|
||||
@@ -715,6 +717,8 @@ public class ASTExtractor {
|
||||
|
||||
emitNodeSymbol(nd, toplevelLabel);
|
||||
|
||||
isStrict = prevIsStrict;
|
||||
|
||||
return toplevelLabel;
|
||||
}
|
||||
|
||||
|
||||
@@ -144,7 +144,7 @@ import com.semmle.util.trap.TrapWriter;
|
||||
*
|
||||
* <ul>
|
||||
* <li>All JavaScript files, that is, files with one of the extensions supported by {@link
|
||||
* FileType#JS} (currently ".js", ".jsx", ".mjs", ".es6", ".es").
|
||||
* FileType#JS} (currently ".js", ".jsx", ".mjs", ".cjs", ".es6", ".es").
|
||||
* <li>All HTML files, that is, files with with one of the extensions supported by {@link
|
||||
* FileType#HTML} (currently ".htm", ".html", ".xhtm", ".xhtml", ".vue").
|
||||
* <li>All YAML files, that is, files with one of the extensions supported by {@link
|
||||
@@ -210,6 +210,7 @@ public class AutoBuild {
|
||||
private final String defaultEncoding;
|
||||
private ExecutorService threadPool;
|
||||
private volatile boolean seenCode = false;
|
||||
private volatile boolean seenFiles = false;
|
||||
private boolean installDependencies = false;
|
||||
private int installDependenciesTimeout;
|
||||
private final VirtualSourceRoot virtualSourceRoot;
|
||||
@@ -472,7 +473,11 @@ public class AutoBuild {
|
||||
shutdownThreadPool();
|
||||
}
|
||||
if (!seenCode) {
|
||||
warn("No JavaScript or TypeScript code found.");
|
||||
if (seenFiles) {
|
||||
warn("Only found JavaScript or TypeScript files that were empty or contained syntax errors.");
|
||||
} else {
|
||||
warn("No JavaScript or TypeScript code found.");
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
@@ -1201,6 +1206,7 @@ protected DependencyInstallationResult preparePackagesAndDependencies(Set<Path>
|
||||
long start = logBeginProcess("Extracting " + file);
|
||||
Integer loc = extractor.extract(f, state);
|
||||
if (!extractor.getConfig().isExterns() && (loc == null || loc != 0)) seenCode = true;
|
||||
if (!extractor.getConfig().isExterns()) seenFiles = true;
|
||||
logEndProcess(start, "Done extracting " + file);
|
||||
} catch (Throwable t) {
|
||||
System.err.println("Exception while extracting " + file + ".");
|
||||
|
||||
@@ -116,7 +116,7 @@ public class FileExtractor {
|
||||
}
|
||||
},
|
||||
|
||||
JS(".js", ".jsx", ".mjs", ".es6", ".es") {
|
||||
JS(".js", ".jsx", ".mjs", ".cjs", ".es6", ".es") {
|
||||
@Override
|
||||
public IExtractor mkExtractor(ExtractorConfig config, ExtractorState state) {
|
||||
return new ScriptExtractor(config);
|
||||
|
||||
@@ -19,6 +19,11 @@ public class ScriptExtractor implements IExtractor {
|
||||
return extension.equals(".mjs") || extension.equals(".es6") || extension.equals(".es");
|
||||
}
|
||||
|
||||
/** True if files with the given extension should always be treated as CommonJS modules. */
|
||||
private boolean isAlwaysCommonJSModule(String extension) {
|
||||
return extension.equals(".cjs");
|
||||
}
|
||||
|
||||
@Override
|
||||
public LoCInfo extract(TextualExtractor textualExtractor) {
|
||||
LocationManager locationManager = textualExtractor.getLocationManager();
|
||||
@@ -45,9 +50,13 @@ public class ScriptExtractor implements IExtractor {
|
||||
}
|
||||
|
||||
// Some file extensions are interpreted as modules by default.
|
||||
if (isAlwaysModule(locationManager.getSourceFileExtension())) {
|
||||
if (config.getSourceType() == SourceType.AUTO)
|
||||
if (config.getSourceType() == SourceType.AUTO) {
|
||||
if (isAlwaysModule(locationManager.getSourceFileExtension())) {
|
||||
config = config.withSourceType(SourceType.MODULE);
|
||||
}
|
||||
if (isAlwaysCommonJSModule(locationManager.getSourceFileExtension())) {
|
||||
config = config.withSourceType(SourceType.COMMONJS_MODULE);
|
||||
}
|
||||
}
|
||||
|
||||
ScopeManager scopeManager =
|
||||
|
||||
Reference in New Issue
Block a user