Commit Graph

152 Commits

Author SHA1 Message Date
dolby-oss 553ab68efa jquery example
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4545 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-03-08 17:35:32 +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 99564d6e06 strengthen checking of argument specialization test
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4533 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-23 18:15:05 +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 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 5f2733bd0e fix some compile errors
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4501 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-17 20:24:32 +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 c861bfed80 introduce CGBuilderType enum, related refactorings
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4493 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-17 20:22:14 +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 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 677fc96aec add a test
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4485 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-17 20:19:32 +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 fcf0aa824d in the Function.apply() context selector, only add one-level of call strings when an ApplyContext is also being used
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4474 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-17 20:17:22 +00:00
msridhar1 54d50d4eea Turning off handling of apply for this test.
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4472 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-17 20:16:55 +00:00
msridhar1 2dda77a0fb another bug fix; looking good...
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4467 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-17 20:15:57 +00:00
msridhar1 c9d914304d add a test
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4462 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-17 20:14:36 +00:00
msridhar1 9ad5c55d85 generate lexical access instructions for methods accessing their own exposed vars. still need to fix call graph construction
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4461 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-17 20:14:26 +00:00
msridhar1 c87d4731bb add a test case that causes a crash
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4458 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-17 20:13:39 +00:00
Max Schaefer aa00b04c00 Some more fixes to the closure extractor; now only a single test fails. 2012-02-09 08:21:10 -05:00
msridhar1 eb1f59407d Undoing accidental commit.
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4453 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-08 15:35:56 +00:00
msridhar1 d7544c111f Minor change.
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4452 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-08 15:35:45 +00:00
msridhar1 6449da85df Some final fixes to the for-in body extractor; it now seems to work as
before.

git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4451 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-08 15:35:32 +00:00
msridhar1 3b5a939033 New test for an NPE during SSA conversion.
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4450 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-08 15:35:16 +00:00
msridhar1 c47b6a77b4 Need to pass on the preprocessor when constructing the call graph
builder.

git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4449 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-08 15:35:06 +00:00
msridhar1 96f0d763d2 Minor change.
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4443 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-08 15:33:21 +00:00
msridhar1 55adb1ac2e Minor change.
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4442 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-08 15:33:10 +00:00
dolby-oss 79946e98d6 purported fixes for Max's latest bugs (with some tests)
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4433 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-07 13:50:08 +00:00
dolby-oss 3113f14e23 handling for delete exprs, and a test
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4432 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-06 13:54:10 +00:00
dolby-oss 4c6d062dbb blunt force trauma to CAst frond end:
1) Structural changes in the AstTranslator to allow retranslation and generation of custom IR.  This is mostly moving state from the translator itself into the context.
2) Some refactoring to share some AST generation code across the Java and JavaScript front ends.
3) Switching to the latest Rhino, release 1.7R3; this is a pervasive change to the JavaScript Rhino translator, since it involves switching to the new AST interface in Rhino.
4) Common code to, as an option, translate Do-style loops by replicating the loop body.  This allows the use of CAstNode.LOOP forms for such loops.
5) Some bug fixes to the mechanisms of the CAstRewriter to handle weird control flow cases.
6) An example of retranslation to specialize JavaScript methods based on how many arguments they receive at call sites.


git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4425 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-01-27 20:15:33 +00:00
msridhar1 8b547b4812 Split up ForInLoopRewriter in preparation for merging changes back into
open-source WALA. The extraction code is now in com.ibm.wala.cast.js,
with some more general stuff moved to com.ibm.wala.cast and
com.ibm.wala.util. The tests are in com.ibm.wala.cast.js.test and
com.ibm.wala.cast.js.rhino.test. ForInLoopRewriter itself only contains
the framework specific tests and the copies of the frameworks
themselves.

git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4418 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-01-06 21:52:26 +00:00
msridhar1 a2c146b2d8 New failing test case dead_phi
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4417 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-01-06 21:51:26 +00:00
msridhar1 c8c12436a7 Added test exposing a weird IR generation bug.
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4415 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-01-06 21:50:52 +00:00
msridhar1 c18cc405f7 fix disabling of call / apply for ajaxslt test
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4408 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-01-06 21:48:53 +00:00
msridhar1 1f5c0996e5 re-enable ajaxslt test with call / apply handling disabled
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4406 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-01-06 21:48:14 +00:00
msridhar1 ea7be296c8 create JSAnalysisOptions, and use to add proper option to disable handling of call / apply
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4405 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-01-06 21:48:01 +00:00
msridhar1 a12194cc92 fix handling of Function.prototype.apply. Disable testAjaxslt, which blows up with the fix enabled
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4402 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-01-06 21:47:09 +00:00
msridhar1 b3f6bfb18c better formatting
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4394 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-01-06 21:45:08 +00:00
msridhar1 082607327d test case for bad recursion check bug
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4389 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-01-06 21:43:58 +00:00
msridhar1 13202e726e Added test case for handling of arguments array.
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4388 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-01-06 21:43:37 +00:00
msridhar1 e149af8a13 Some more tests.
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4381 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-01-06 21:41:57 +00:00
msridhar1 ed37d9ee5d another failing test case for scoping and closures
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4376 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-01-06 21:36:59 +00:00
msridhar1 ca1792a6b8 add unit test for recursive lexical scopes
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4373 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-01-06 21:36:10 +00:00
msridhar1 2dc375340a Simplified test cases.
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4365 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-01-06 21:34:14 +00:00
msridhar1 98f89876b1 Adding two simple regression tests.
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4364 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-01-06 21:34:04 +00:00
msridhar1 9a3b4f3d8a add missing assertion check
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4341 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-01-06 21:28:46 +00:00
msridhar1 3057d11607 stop dumping call graph in the MediaWiki test to speed things up; add a flag to Util to suppress call graph output in other cases
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4337 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-01-06 21:27:42 +00:00
msridhar1 610c7e252e add a test for Function.apply() with the arguments array
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4336 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-01-06 21:27:21 +00:00
msridhar1 14c4cdb251 bug fix in SSAPropagationCallGraphBuilder: allow empty points-to sets for interesting non-receiver arguments
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4335 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-01-06 21:27:03 +00:00