Juergen Graf
6f8aee80c6
Merge branch 'wala' into master
2014-07-28 17:09:02 +02:00
Julian Dolby
3910608d60
JavaScript slicer support
2014-07-11 11:55:02 -04:00
Julian Dolby
dd3124479e
allow control flow in induced cfgs, and various related fixes
2014-07-08 14:44:06 -04:00
Julian Dolby
5c0285c410
fixes to source variable name tracking, and new test to verify fix
2014-07-01 21:23:52 +02:00
Julian Dolby
bdea38f6bc
remove some printing
2014-06-26 11:11:00 -04:00
Julian Dolby
c179b02238
split constructor logic out of target selector, so that it can be reused
...
more flexibly in the field-based builders
2014-05-28 13:35:11 -04:00
Juergen Graf
4772f36d47
add standard type parameter to most pointer analysis references. When it breaks we move back to ? extends InstanceKey.
2014-05-20 22:00:06 +02:00
Juergen Graf
ef4513d377
revert PointerAnalysis hack that makes containsAny() and contains() methods in OrdinalSet unusable
2014-05-20 19:52:01 +02:00
Juergen Graf
428a3975ed
Merge branch 'wala' into master
...
Conflicts:
com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/loader/JavaSourceLoaderImpl.java
com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/ssa/AstJavaInstructionFactory.java
com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/ssa/AstJavaInvokeInstruction.java
com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/TestSimpleCallGraphShape.java
com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/html/WebPageLoaderFactory.java
com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/loader/JavaScriptLoader.java
com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ssa/JSInstructionFactory.java
com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ssa/JavaScriptInvoke.java
com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/AstCallGraph.java
com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/AbstractLexicalInvoke.java
com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/AstInstructionFactory.java
com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/AstLexicalRead.java
com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/AstLexicalWrite.java
com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/FixedParametersInvokeInstruction.java
com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AstTranslator.java
com.ibm.wala.core/.classpath
com.ibm.wala.core/.settings/org.eclipse.jdt.core.prefs
com.ibm.wala.ide/src/com/ibm/wala/ide/util/ProgressMonitorDelegate.java
com.ibm.wala.util/src/com/ibm/wala/util/NullProgressMonitor.java
com.ibm.wala.util/src/com/ibm/wala/util/ProgressMaster.java
2014-05-20 17:59:16 +02:00
Julian Dolby
99512c5cd0
uuse PrinterWriter; make DOM model optional
2014-04-11 10:00:05 -04:00
Julian Dolby
893f4b7308
type in CAst var decls
2014-03-16 18:05:49 -04:00
Julian Dolby
969a209f1e
adaot to type generalization
2014-02-08 22:51:38 -05:00
Julian Dolby
e585e1d1c2
trivial final modifier
2014-02-08 21:35:30 -05:00
Julian Dolby
d528c16b0f
refactoring to integrate field-based cg builders with Eclipse-based
...
JavaScript front end
2013-08-05 14:35:41 -04:00
Juergen Graf
cdaaddf88b
Merge branch 'wala' into master
2013-07-02 14:23:24 +02:00
Julian Dolby
080325b5f6
merge
2013-06-25 11:57:37 -04:00
Manu Sridharan
f268ca91fd
remove precise lexical config options; we want this to just be on
2013-06-07 09:48:00 -07:00
Manu Sridharan
321695617c
delete more code
2013-06-06 20:02:42 -07:00
Manu Sridharan
472a98d7cf
delete some code
2013-06-06 20:02:42 -07:00
Manu Sridharan
d4b252ad51
kill NEW_LEXICAL flag
2013-06-06 20:02:41 -07:00
Max Schaefer
79b12e332e
Only introduce property name contexts for constant keys.
2013-06-07 08:29:24 +08:00
Max Schaefer
ef0cf8589d
Forgot to set translator factory; fixed.
2013-06-07 08:29:24 +08:00
Max Schaefer
79caece0c1
Introducing convenience method for creating a loader factory without a preprocessor.
2013-06-07 08:29:24 +08:00
Max Schaefer
3adaaf50ee
Correlation finder now handles both HTML files and raw JS files as
...
input, doesn't use WebPageLoaderFactory to create CAst anymore.
2013-06-07 08:29:24 +08:00
Max Schaefer
3d974b8313
Temporary commit; things are broken, but I need to switch back to master for a bit.
2013-06-07 08:29:24 +08:00
Manu Sridharan
68db1cc279
avoid recursive apply contexts
2013-06-03 16:47:02 -07:00
Max Schaefer
fcd28ee419
More refactoring of ParameterNameContextSelector, which is now called
...
PropertyNameContextSelector.
2013-06-03 14:13:37 +08:00
Max Schaefer
3a0741571f
Some cleanup in ForInContextSelector; now renamed to
...
ParameterNameContextSelector.
2013-06-03 12:18:29 +08:00
Manu Sridharan
3b1889121b
add missing copyright headers
2013-05-22 15:39:19 -07:00
Manu Sridharan
dcc7cd206d
bug fix: allow each language to determine when a CGNode represents the "definer" method for a lexical access
2013-04-29 20:34:40 -07:00
Julian Dolby
1cc5e5ce9c
fixes for bug with dead code and exception handlers
2013-04-10 21:16:12 -04:00
Manu Sridharan
4f7ec12edd
Expose temporary file created by source extractor. Fixes #19
2013-04-10 12:22:57 -07:00
Manu Sridharan
dae0b33233
Merge branch 'master'
...
Conflicts:
com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/loader/JavaSourceLoaderImpl.java
com.ibm.wala.cast.js.rhino.test/harness-src/com/ibm/wala/cast/js/test/TestSimpleCallGraphShapeRhino.java
com.ibm.wala.cast.js.rhino.test/harness-src/com/ibm/wala/cast/js/test/TestSimplePageCallGraphShapeRhino.java
com.ibm.wala.cast.js.rhino.test/harness-src/com/ibm/wala/cast/js/test/TestSimplePageCallGraphShapeRhinoJericho.java
com.ibm.wala.cast.js.rhino.test/harness-src/com/ibm/wala/cast/js/vis/JsViewerDriver.java
com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/TestSimpleCallGraphShape.java
com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/loader/JavaScriptLoader.java
com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/CAstEntity.java
2013-04-09 15:56:47 -07:00
Manu Sridharan
11c6619c7f
Variety of changes to JS front end.
...
- crash fixes
- small enhancements to prologue and preamble
- tighter handling of timeouts during CG construction
2013-04-09 15:47:22 -07:00
Juergen Graf
80920368ef
incorporate changes from other branch
...
- remove extraneous printing
- fixes for parse errors in JS and HTML
- fixes for handling parse errors in JS and HTML
- update comments
- Change BitVectorRepository to use LinkedLists
- improve javadoc
- fix for for in contexts for NEVER case
- missing VectorKill println method
2013-03-12 00:21:26 +01:00
Julian Dolby
87b856928c
fixes for handling parse errors in JS and HTML
2013-03-01 10:07:20 -05:00
Julian Dolby
189a251a93
fix for for in contexts for NEVER case
2013-02-08 08:54:24 +01:00
Juergen Graf
d77cfc60fc
incorporate changes from other branch
...
- Annotation support
- Properly fix path-with-spaces bug.
- fix bug involving paths with spaces
- add a simple driver for building a call graph via a scope file
- Properly return null as default constructor of an array.
- organize imports
- better handling of missing bytecodes
- javadoc
- test fix
- small Javadoc fix
- added date-property.js
- 1) added InstanceKey.getCreation sites and its implementations 2) fixes for issues with keys representing dynamic properties i) all properties are converted to strings,
- publicize method makeClasspath(). deprecate quoteStringIfNeeded()
- organize imports
- javadoc
- renamed classes to make relationship to mod-ref analysis clearer
- add support for lexical writes
- Code to compute transitive lexical accesses of methods.
- extract some generally useful code from ModRef
- Generate proper InstanceFieldKeys for property accesses with Numbers.
- rewrite to make hardest test appear last
- fix test to properly check reachability
- add an array test that doesn't quite work
- add method to get a PointerKey for a global
- compare FieldValueDispatch objects based on CGNode as well
- Handle duplicate field names between subclass and superclass.
2013-02-06 12:34:25 +01:00
Julian Dolby
afccdd2189
Annotation support
2013-02-02 21:27:45 -05:00
Julian Dolby
9aa474fdb1
1) added InstanceKey.getCreation sites and its implementations
...
2) fixes for issues with keys representing dynamic properties
i) all properties are converted to strings, in an approximation of JS
semantics
3) fix to handling of instance keys representing numbers in binary +;
now it understands that adding constant keys of type Number requires
adding a non-constant Number key to the lval
2013-01-07 20:18:27 -05:00
Manu Sridharan
730151956f
organize imports
2013-01-04 12:00:26 -08:00
Manu Sridharan
6084f4ff61
Generate proper InstanceFieldKeys for property accesses with Numbers.
...
Note that this change actually breaks a couple of our unit tests. But,
it seems they were only passing by accident before anyway, and this change
at least leads to a more consistent handling of dynamic property accesses
with String vs. Number property names.
2012-12-18 10:11:59 -08:00
Manu Sridharan
5bcdb30014
add method to get a PointerKey for a global
2012-11-30 13:37:34 -05:00
Manu Sridharan
4a87d7b145
compare FieldValueDispatch objects based on CGNode as well
2012-11-30 11:04:48 -05:00
Juergen Graf
b82d5dba90
Merge branch 'wala' into master
2012-11-06 04:23:10 +01:00
Manu Sridharan
3ee6f9d229
Merge branch 'master' of github.com:wala/WALA
2012-10-08 13:34:04 -07:00
Manu Sridharan
fae5d9f3dd
weaken recursion check slightly
2012-10-08 13:33:45 -07:00
Manu Sridharan
bcee68c412
bug fix in generated IR
2012-10-08 13:32:59 -07:00
dolby
d8985fe60b
Merge branch 'master' of https://github.com/wala/WALA.git
2012-10-03 10:53:39 -04:00
dolby
f7a7d66b28
move loop unrolling code to wala from Miniatur/MemSAT
2012-10-03 10:53:04 -04:00
Manu Sridharan
695b9948a3
fix getNodes() to correctly return nodes corresponding to constructors
2012-10-02 12:27:31 -07:00
dolby
fae5c86114
fixes for users of JDT interfaces, such as Miniatur/MemSAT
2012-10-01 13:11:10 -04:00
Manu Sridharan
a3efc8bbc3
Merge branch 'master' of riverdale.watson.ibm.com:jsanalysis
2012-09-18 14:07:37 -04:00
Max Schaefer
e130a5b963
Some refactoring of prologue.js and preamble.js to use more consistent
...
names.
2012-09-18 13:22:17 -04:00
Manu Sridharan
e4c9c7ab91
add some javadoc
2012-09-12 11:36:54 -07:00
Manu Sridharan
24eb803211
organize imports; no semantic change
2012-09-04 16:24:37 -07:00
Max Schaefer
2a13228e50
Fixed for-in loop body extractor after recent changes to CAst representation of for-in loops.
2012-08-30 10:55:19 -04:00
dolby
17ab92b8f2
assert that the first line number is always not -1
2012-08-28 21:49:04 -04:00
Juergen Graf
4648f0404a
Merge branch 'wala' into master
2012-07-17 13:57:43 +02:00
Manu Sridharan
9847bf21f4
Merge remote-tracking branch 'origin/master'
2012-07-12 10:30:56 -07:00
Manu Sridharan
9a0e105e51
fix so that new lexical scheme can be enabled with Java frontends
2012-07-12 10:27:24 -07:00
Max Schaefer
ff3416a89f
Be more careful when determining source-level names for SSA variable to
...
avoid index-out-of-bounds accesses.
2012-07-05 11:20:25 -04:00
Max Schaefer
fca3999e9a
Fixed rewriting of non-constant switch cases.
2012-07-05 09:37:47 -04:00
Manu Sridharan
f6e52c9b93
Merge remote-tracking branch 'riverdale/master'
2012-07-04 10:27:13 -07:00
Max Schaefer
7bdc127ce5
Workaround for invalid end positions in CAst.
2012-07-04 12:19:05 -04:00
dolby
4b3cba710d
changes from upstream
2012-06-29 15:47:54 -04:00
Juergen Graf
c71fa6674a
Merge branch 'wala' into master
2012-04-19 14:39:05 +02:00
Manu Sridharan
2edb070437
changed FileProvider to have instance methods
2012-04-16 14:57:14 -04:00
Juergen Graf
7477b1730b
Merge branch 'wala' into master
2012-03-19 13:33:48 +01:00
dolby-oss
44e7a02ac3
improve handling of binary expressions
...
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4544 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-03-08 17:35:04 +00:00
dolby-oss
8f4ddd6920
remove warnings
...
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4537 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-03-03 00:25:47 +00:00
dolby-oss
a9ec87f360
Changes motivated by analysis issues in JavaScript. The main change is that calls of the form f.x() in JavaScript are now analyzed like 'method calls' so that the 'this' pointer in the receiver functions can be filtered based upon the types that actually have the method being invoked. This requires much more dynamic filtering than in a language like Java, since properties like 'x' are simply properties that happen to hold functions, and so can be assigned in a first-class manner. Thus, the filtering needs to handle variance in both the types and the values of their properties; this is implemented as multiple levels of abstract object directed side effect equations in the dataflow system.
...
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4535 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-03-01 02:45:51 +00:00
dolby-oss
3a5013d8e5
generalize hack for finding 'base' variables. fix bugs in renaming arguments.
...
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4526 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-23 17:44:09 +00:00
msridhar1
ec7be6dc39
Got rid of IntegerContextItem and BooleanContextItem and replaced them
...
by uses of ContextItem.Value.
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4514 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-17 20:27:16 +00:00
msridhar1
1ae581819f
add one level of caller-site sensitivity for call() and apply(); experimental
...
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4513 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-17 20:27:03 +00:00
msridhar1
5c2ca88ba2
more comments
...
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4511 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-17 20:26:36 +00:00
msridhar1
5bc7fb3e44
Within for/in bodies, use a marker for/in context instead of a CallerSiteContext
...
to better handle certain recursion. Still needs better Javadoc
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4510 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-17 20:26:24 +00:00
msridhar1
d1974d8b54
new context selector that just checks for recursion instead of bounding it
...
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4509 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-17 20:26:14 +00:00
msridhar1
a840e068d6
When extracting correlated pairs, check that the extraction region does
...
not reference the "arguments" variable.
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4506 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-17 20:25:39 +00:00
msridhar1
a3d0b45eef
Added support for localising variables through which correlated reads
...
flow. This somewhat compensates for the lack of SSA form for closure
variables under the new lexical scheme.
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4505 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-17 20:25:22 +00:00
msridhar1
5106842f30
fix memory leak
...
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4504 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-17 20:25:06 +00:00
msridhar1
efcbdd625c
Merge remote-tracking branch 'riverdale/extractor-fix' into lexical-again
...
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4502 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-17 20:24:48 +00:00
msridhar1
e60be259ae
avoid crashes in LoadFileTargetSelector
...
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4500 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-17 20:24:08 +00:00
msridhar1
1eb7236267
use a CallStringContext when hitting the recursion bound with constructors
...
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4499 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-17 20:23:57 +00:00
msridhar1
e9d2ad598a
move recursion bound selector to HTMLCGBuilder; a temporary solution
...
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4497 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-17 20:23:37 +00:00
msridhar1
965896c210
add general recursion bounding via an additional context selector. Also, completely eliminate dependence on contexts for correct pointer analysis with new lexical scheme.
...
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4496 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-17 20:23:21 +00:00
msridhar1
954a1f091b
more work on precise lexical configuration
...
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4495 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-17 20:22:55 +00:00
msridhar1
4037ef9b02
add new analysis option JSAnalysisOptions.usePreciseLexical(), which allows for a less precise handling of lexical accesses
...
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4494 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-17 20:22:30 +00:00
msridhar1
a3826f23a8
refactoring: rename some Util classes
...
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4492 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-17 20:21:59 +00:00
msridhar1
92d8dc1e3d
Revert "refactor context selectors: extract delegation into ComposedContextSelector"
...
This reverts commit 7ff1219c5baed388a82d14fcf81d2b1f456c4e95. That commit broke
a dojo test, and I'm not sure why.
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4491 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-17 20:21:18 +00:00
msridhar1
59d602e9b7
added a recursion check
...
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4490 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-17 20:20:36 +00:00
msridhar1
edd300cf00
refactor context selectors: extract delegation into ComposedContextSelector
...
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4489 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-17 20:20:26 +00:00
msridhar1
5c0c7eb7f8
pref off generating separate call methods per site; better handled in a context selector, as this was causing non-termination
...
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4487 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-17 20:19:49 +00:00
msridhar1
bd71761645
Un-finalled flag WARN_ABOUT_IMPRECISE_CALLGRAPH to make it configurable
...
from TestUtil.
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4486 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-17 20:19:40 +00:00
msridhar1
6d2f186f36
re-enable ScopeMappingContexts
...
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4482 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-17 20:19:03 +00:00
msridhar1
a1a62d4793
Fixed a longstanding bug in the handling of arguments: both v1 _and_ v2
...
should be ignored when setting up the arguments array (the former is the
invoked function, the latter is the receiver).
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4480 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-17 20:18:32 +00:00
msridhar1
8988ff3b0f
more precise model of Function.prototype.apply(); read correct properties from arguments array
...
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4479 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-17 20:18:16 +00:00
msridhar1
197ec11f35
small optimization: avoid calling TypeName.toString() in some cases
...
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4478 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-17 20:18:07 +00:00
msridhar1
19bd95238a
Adding a context item containing the index.
...
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4477 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-17 20:17:55 +00:00
msridhar1
16c798c790
bug fix: only generate one synthetic method representing Function.prototype.apply
...
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4476 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-17 20:17:44 +00:00