From c5d5ce7fe28a4a4a131575756cac94727aadbe6d Mon Sep 17 00:00:00 2001 From: Julian Dolby Date: Sun, 6 Aug 2017 19:16:25 -0400 Subject: [PATCH] missed files --- .../examples-src/tests/demo2.js | 14 +++++ .../src/com/ibm/wala/util/io/JavaHome.java | 9 +++ .../src/com/ibm/wala/util/io/RtJar.java | 59 +++++++++++++++++++ 3 files changed, 82 insertions(+) create mode 100644 com.ibm.wala.cast.js.test.data/examples-src/tests/demo2.js create mode 100644 com.ibm.wala.util/src/com/ibm/wala/util/io/JavaHome.java create mode 100644 com.ibm.wala.util/src/com/ibm/wala/util/io/RtJar.java diff --git a/com.ibm.wala.cast.js.test.data/examples-src/tests/demo2.js b/com.ibm.wala.cast.js.test.data/examples-src/tests/demo2.js new file mode 100644 index 000000000..75b9de1d2 --- /dev/null +++ b/com.ibm.wala.cast.js.test.data/examples-src/tests/demo2.js @@ -0,0 +1,14 @@ +var document = { URL: "whatever", + write: function Document_prototype_write(x) { } }; +var id = function _id(x) { return x; }; +function Id() { this.id = id; } +function SubId() { }; SubId.prototype = new Id(); + +if (Math.random.call(null) > 0) { + var id1 = new Id(); + var text = id1.id.call(document, document.URL); +} else { + var id2 = new SubId(); + var text = id2.id("not a url"); +} +document.write(text); diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/io/JavaHome.java b/com.ibm.wala.util/src/com/ibm/wala/util/io/JavaHome.java new file mode 100644 index 000000000..c7f185d34 --- /dev/null +++ b/com.ibm.wala.util/src/com/ibm/wala/util/io/JavaHome.java @@ -0,0 +1,9 @@ +package com.ibm.wala.util.io; + +public class JavaHome { + + public static void main(String[] args) { + System.err.println(System.getProperty("java.home")); + } + +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/io/RtJar.java b/com.ibm.wala.util/src/com/ibm/wala/util/io/RtJar.java new file mode 100644 index 000000000..4bc977c68 --- /dev/null +++ b/com.ibm.wala.util/src/com/ibm/wala/util/io/RtJar.java @@ -0,0 +1,59 @@ +package com.ibm.wala.util.io; + +import java.io.File; +import java.io.IOException; +import java.util.Iterator; +import java.util.jar.JarFile; + +import com.ibm.wala.util.PlatformUtil; +import com.ibm.wala.util.Predicate; +import com.ibm.wala.util.collections.ArrayIterator; +import com.ibm.wala.util.collections.FilterIterator; +import com.ibm.wala.util.collections.MapIterator; +import com.ibm.wala.util.functions.Function; + +public class RtJar { + + public static JarFile getRtJar(Iterator x) { + while (x.hasNext()) { + JarFile JF = x.next(); + if (JF.getName().endsWith(File.separator + "rt.jar")) { + return JF; + } + if (JF.getName().endsWith(File.separator + "core.jar")) { + return JF; + } + // hack for Mac + if (PlatformUtil.onMacOSX() && JF.getName().endsWith(File.separator + "classes.jar")) { + return JF; + } + } + + return null; + } + + public static void main(String[] args) { + @SuppressWarnings("resource") + JarFile rt = getRtJar(new MapIterator<>( + new FilterIterator( + new ArrayIterator<>(System.getProperty("sun.boot.class.path").split(File.pathSeparator)), + new Predicate() { + @Override + public boolean test(String t) { + return t.endsWith(".jar"); + } }), + new Function() { + @Override + public JarFile apply(String object) { + try { + return new JarFile(object); + } catch (IOException e) { + assert false : e.toString(); + return null; + } + } + })); + + System.err.println(rt.getName()); + } +}