ECOOP 2015
Sun 5 - Fri 10 July 2015 Prague, Czech Republic
Thu 9 Jul 2015 17:30 - 18:00 at Bohemia - Empirical Studies Chair(s): Jonathan Aldrich

Most popular programming languages support situations where a value of one type is converted into a value of another type without any explicit cast. Such implicit type conversions, or type coercions, are a highly controversial language feature. Proponents argue that type coercions enable writing concise code. Opponents argue that type coercions are error-prone and that they reduce the understandability of programs. This paper studies the use of type coercions in JavaScript, a language notorious for its widespread use of coercions. We dynamically analyze hundreds of programs, including real-world web applications and popular benchmark programs. We find that coercions are widely used (in 69.42% of all function executions) and that most coercions are likely to be harmless (99.65%). Furthermore, we identify a set of rarely occurring and potentially harmful coercions that safer subsets of JavaScript or future language designs may want to disallow. Our results suggest that type coercions are significantly less evil than commonly assumed and that analyses targeted at real-world JavaScript programs must consider coercions.

Thu 9 Jul

17:30 - 18:30: Research Track - Empirical Studies at Bohemia
Chair(s): Jonathan AldrichCarnegie Mellon University
research-track143645580000017:30 - 18:00
Michael PradelTU Darmstadt, Koushik SenUniversity of California, Berkeley
research-track143645760000018:00 - 18:30
Flavio MedeirosFederal University of Campina Grande, Christian KästnerCarnegie Mellon University, Márcio RibeiroFederal University of Alagoas (UFAL), Sarah NadiTechnische Universität Darmstadt, Rohit GheyiUFCG, Brazil