2017
DOI: 10.1007/978-3-319-56856-0_11
|View full text |Cite
|
Sign up to set email alerts
|

Refactoring Legacy JavaScript Code to Use Classes: The Good, The Bad and The Ugly

Abstract: 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 programmingin-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… Show more

Help me understand this report
View preprint versions

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
7
0

Year Published

2017
2017
2021
2021

Publication Types

Select...
3
3

Relationship

1
5

Authors

Journals

citations
Cited by 7 publications
(7 citation statements)
references
References 18 publications
0
7
0
Order By: Relevance
“…In particular, until ECMAScript 2015, JavaScript did not include syntactical support for classes. Classes were emulated using functions as constructors, and methods/fields are added to their prototype [46,47,48]. In addition, object literals could represent imaginary classes: comma-separated list of name-value pairs enclosed in curly braces, where the name-value pairs declare the class fields/methods.…”
Section: B Patterns In Bugs and Fixesmentioning
confidence: 99%
“…In particular, until ECMAScript 2015, JavaScript did not include syntactical support for classes. Classes were emulated using functions as constructors, and methods/fields are added to their prototype [46,47,48]. In addition, object literals could represent imaginary classes: comma-separated list of name-value pairs enclosed in curly braces, where the name-value pairs declare the class fields/methods.…”
Section: B Patterns In Bugs and Fixesmentioning
confidence: 99%
“…The identification of classes and their dependencies in legacy JavaScript is studied in [34,35]. Extensions of these works provide migration rules for their refactoring towards using ES6 classes [36,37]. Paltoglou et al [38] propose a static analysis technique for refactoring nonmodular ES5 web applications towards ES6 modules.…”
Section: Related Workmentioning
confidence: 99%
“…Our work handles concerns related to code migration to a newer language version, as well as to the improvement of its internal quality attributes. As compared to earlier work on refactoring legacy ES5 code to the ES6 class syntax [36,37], our work is complementary and a basic requirement for its application. The reason is that migration to ES6 modularity is a prerequisite for further application of migrations that incorporate modern language features to a code-base.…”
Section: Related Workmentioning
confidence: 99%
“…In particular, until ECMAScript 2015, JS did not include syntactical support for classes. Classes were emulated using functions as constructors, and methods/fields are added to their prototype [51][52][53]. In addition, object literals could represent imaginary classes: comma-separated list of name-value pairs enclosed in curly braces, where the name-value pairs declare the class fields/methods.…”
Section: Of 38 Bugsjs: a Bencmark And Taxamony Of Javascript Bugsmentioning
confidence: 99%