  JavaScript contributes to the increasing complexity of today's web. To
support user interactivity and accelerate the development cycle, web developers
heavily rely on large general-purpose third-party JavaScript libraries. This
practice increases the size and the processing complexity of a web page by
bringing additional functions that are not used by the page but unnecessarily
downloaded and processed by the browser. In this paper, an analysis of around
40,000 web pages shows that 70% of JavaScript functions on the median page are
unused, and the elimination of these functions would contribute to the
reduction of the page size by 60%. Motivated by these findings, we propose
Muzeel (which means eliminator in Arabic); a solution for eliminating
JavaScript functions that are not used in a given web page (commonly referred
to as dead code). Muzeel extracts all of the page event listeners upon page
load, and emulates user interactions using a bot that triggers each of these
events, in order to eliminate the dead code of functions that are not called by
any of these events. Our evaluation results spanning several Android mobile
phones and browsers show that Muzeel speeds up the page load by around 30% on
low-end phones, and by 25% on high-end phones under 3G network. It also reduces
the speed index (which is an important user experience metric) by 23% and 21%
under the same network on low-end, and high-end phones, respectively.
Additionally, Muzeel reduces the overall download size while maintaining the
visual content and interactive functionality of the pages.
