fixes for nodejs performance

This commit is contained in:
Julian Dolby 2018-04-17 09:02:30 -04:00 committed by Ben Liblit
parent 563d7446d1
commit 1ba0082896
2 changed files with 9 additions and 4 deletions

View File

@ -116,8 +116,6 @@ public class NodejsRequireTargetSelector implements MethodTargetSelector {
IClass script = builder.getClassHierarchy()
.lookupClass(TypeReference.findOrCreate(jsLoader.getReference(), className));
System.err.println(builder.getClassHierarchy());
IMethod method = script.getMethod(AstMethodReference.fnSelector);
previouslyRequired.put(sourceModule.getClassName(), method);

View File

@ -13,14 +13,15 @@ package com.ibm.wala.cast.js.nodejs;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.util.Arrays;
import java.util.Map;
import java.util.Set;
import org.apache.commons.io.FilenameUtils;
import com.ibm.wala.cast.ipa.callgraph.CAstCallGraphUtil;
import com.ibm.wala.classLoader.SourceFileModule;
import com.ibm.wala.util.collections.HashMapFactory;
import com.ibm.wala.util.collections.HashSetFactory;
import com.ibm.wala.util.io.TemporaryFile;
@ -52,8 +53,14 @@ public class NodejsRequiredCoreModule extends NodejsRequiredSourceModule {
return NodejsRequiredCoreModule.class.getClassLoader().getResourceAsStream("core-modules/" + name + ".js");
}
private static final Map<String,File> names = HashMapFactory.make();
public static NodejsRequiredCoreModule make(String name) throws IOException {
File file = Files.createTempFile(name, ".js").toFile();
if (! names.containsKey(name)) {
names.put(name, new File(System.getProperty("java.io.tmpdir") + "/" + name + ".js"));
}
File file = names.get(name);
file.deleteOnExit();
TemporaryFile.streamToFile(file, getModule(name));
SourceFileModule sourceFileModule = CAstCallGraphUtil.makeSourceModule(file.toURI().toURL(), file.getName());