JavaScript Typing System with Prediction
-
Graphical Abstract
-
Abstract
As the Internet and the World Wide Web become more and more popular nowadays, and the JavaScript programming language is becoming a key role in Web browsers, investigation on the behavior of JavaScript applications is important to improve Web browser’s performance and user experience. Traditional study believes that, the dynamic typing nature of the JavaScript language is the major performance bottleneck. So the main optimizations of most advanced mainstream JavaScript engines are all focused on dynamic typing problems. To learn the dynamic typing nature of JavaScript language in depth, two novel predication-based algorithms, called “type prediction” and “position-based inline caching”, are introduced to tackle the problems. With these algorithms, the typing system of JavaScript language is studied systematically and the techniques are evaluated with a representative JavaScript performance benchmark—SunSpider. In experiments with the SunSpider applications, the predication-based algorithms can identify the types with 99% accuracy on average. And so it is believed that although the JavaScript language provides abundant dynamics with its typing system, the actual applications do not really use all the features and hence their behaviors are static at most time. This is the first time that such discovery is made and published.
-
-