Wei, ShiyiRyder, Barbara G.2013-12-132013-12-132013-12-13http://hdl.handle.net/10919/24538JavaScript object behavior is dynamic and adheres to prototype-based inheritance. The behavior of a JavaScript object can be changed by adding and removing properties at runtime. Points-to analysis calculates the set of values a reference property or variable may have during execution. We present a novel, partially flow-sensitive, context-sensitive points-to algorithm that accurately models dynamic changes in object behavior. The algorithm represents objects by their creation sites and local property names; it tracks property updates via a new control-flow graph representation. The calling context is comprised of the receiver object, its local properties and prototype chain. We compare the new points-to algorithm with an existing JavaScript points-to algorithm in terms of their respective performance and accuracy on a client application. The experimental results on real JavaScript websites show that the new points-to analysis significantly improves precision, uniquely resolving on average 11% more property lookup statements.enIn CopyrightJavascriptProgram analysisPoints-to analysisComputer scienceSoftware engineeringIdentity-sensitive Points-to Analysis for the Dynamic Behavior of JavaScript ObjectsTechnical reportTR-13-05