Publications

View publication

Title Refactoring Legacy JavaScript Code to Use Classes: The Good, The Bad and The Ugly
Authors Leonardo Humberto Silva, Marco Tulio Valente, Alexandre Bergel
Publication date 2017
Abstract JavaScript systems are becoming increasingly complex and large.
To tackle the challenges involved in implementing these systems, the
language is evolving to include several constructions for
programming-in-the-large. For example, although the language is
prototype-based, the latest JavaScript standard, named ECMAScript 6 (ES6),
provides native support for implementing classes. Even though most modern
web browsers support ES6, only a very few applications use the class syntax.
In this paper, we analyze the process of migrating structures that emulate
classes in legacy JavaScript code to adopt the new syntax for classes
introduced by ES6. We apply a set of migration rules on eight legacy
JavaScript systems. In our study, we document: (a) cases that are
straightforward to migrate (the good parts); (b) cases that require manual
and ad-hoc migration (the bad parts); and (c) cases that cannot be migrated
due to limitations and restrictions of ES6 (the ugly parts). Six out of
eight systems (75%) contain instances of bad and/or ugly cases. We also
collect the perceptions of JavaScript developers about migrating their code
to use the new syntax for classes.
Downloaded 8 times
Pages 155-171
Conference name International Conference on Software Reuse
Publisher Springer-Verlag (Berlin/Heidelberg, Germany)
PDF View PDF
Reference URL View reference page