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 80.42% of all function executions) and that most coerc...
International audienceThe DefinitelyTyped repository hosts type declarations for thousands of JavaSc...
We present an extension of a statically typed language with a special type Dynamic and explicit type...
Evolving software is particularly challenging when the code has been poorly written or uses confusin...
Dynamic languages, such as JavaScript, give programmers the freedom to ignore types, and enable them...
This poster describes a paper for static analysis of JavaScript, which has proven useful for a varie...
JavaScript is growing explosively and is now used in large mature projects even outside the web doma...
International audienceJavaScript's flexible semantics makes writing correct code hard and writing se...
Typescript extends JavaScript with optional type annotations that are, by design, unsound and, that ...
TypeScript participates in the recent trend among programming languages to support gradual typing. T...
Current proposals for adding gradual typing to JavaScript, such as Closure, TypeScript and Dart, for...
Web scripting languages, such as PHP and JavaScript, provide a wide range of dynamic features that m...
International audienceThe popularity of statically typed programming languages compiling to JavaScri...
A number of important program rewriting scenarios can be recast as type-directed coercion insertion....
Increased focus on JavaScript performance has resulted in vast performance improvements for many ben...
We present an extension of a statically typed language with a special type Dynamic and explicit type...
International audienceThe DefinitelyTyped repository hosts type declarations for thousands of JavaSc...
We present an extension of a statically typed language with a special type Dynamic and explicit type...
Evolving software is particularly challenging when the code has been poorly written or uses confusin...
Dynamic languages, such as JavaScript, give programmers the freedom to ignore types, and enable them...
This poster describes a paper for static analysis of JavaScript, which has proven useful for a varie...
JavaScript is growing explosively and is now used in large mature projects even outside the web doma...
International audienceJavaScript's flexible semantics makes writing correct code hard and writing se...
Typescript extends JavaScript with optional type annotations that are, by design, unsound and, that ...
TypeScript participates in the recent trend among programming languages to support gradual typing. T...
Current proposals for adding gradual typing to JavaScript, such as Closure, TypeScript and Dart, for...
Web scripting languages, such as PHP and JavaScript, provide a wide range of dynamic features that m...
International audienceThe popularity of statically typed programming languages compiling to JavaScri...
A number of important program rewriting scenarios can be recast as type-directed coercion insertion....
Increased focus on JavaScript performance has resulted in vast performance improvements for many ben...
We present an extension of a statically typed language with a special type Dynamic and explicit type...
International audienceThe DefinitelyTyped repository hosts type declarations for thousands of JavaSc...
We present an extension of a statically typed language with a special type Dynamic and explicit type...
Evolving software is particularly challenging when the code has been poorly written or uses confusin...