{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,18]],"date-time":"2026-03-18T04:49:56Z","timestamp":1773809396963,"version":"3.50.1"},"publisher-location":"New York, NY, USA","reference-count":54,"publisher":"ACM","license":[{"start":{"date-parts":[[2016,10,19]],"date-time":"2016-10-19T00:00:00Z","timestamp":1476835200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":[],"published-print":{"date-parts":[[2016,10,19]]},"DOI":"10.1145\/2983990.2984017","type":"proceedings-article","created":{"date-parts":[[2016,10,20]],"date-time":"2016-10-20T11:58:54Z","timestamp":1476964734000},"page":"410-429","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":22,"title":["Type inference for static compilation of JavaScript"],"prefix":"10.1145","author":[{"given":"Satish","family":"Chandra","sequence":"first","affiliation":[{"name":"Samsung Research, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Colin S.","family":"Gordon","sequence":"additional","affiliation":[{"name":"Drexel University, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Jean-Baptiste","family":"Jeannin","sequence":"additional","affiliation":[{"name":"Samsung Research, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Cole","family":"Schlesinger","sequence":"additional","affiliation":[{"name":"Samsung Research, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Manu","family":"Sridharan","sequence":"additional","affiliation":[{"name":"Samsung Research, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Frank","family":"Tip","sequence":"additional","affiliation":[{"name":"Northeastern University, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Youngil","family":"Choi","sequence":"additional","affiliation":[{"name":"Samsung Electronics, South Korea"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2016,10,19]]},"reference":[{"key":"e_1_3_2_2_1_1","unstructured":"Octane Benchmarks. https:\/\/developers.google.com\/ octane\/.  Octane Benchmarks. https:\/\/developers.google.com\/ octane\/."},{"key":"e_1_3_2_2_2_1","unstructured":"SunSpider Benchmarks. https:\/\/www.webkit.org\/perf\/ sunspider\/sunspider.html.  SunSpider Benchmarks. https:\/\/www.webkit.org\/perf\/ sunspider\/sunspider.html."},{"key":"e_1_3_2_2_3_1","unstructured":"Flow. http:\/\/www.flowtype.org.  Flow. http:\/\/www.flowtype.org."},{"key":"e_1_3_2_2_4_1","unstructured":"JetStream Benchmarks. http:\/\/browserbench.org\/ JetStream\/.  JetStream Benchmarks. http:\/\/browserbench.org\/ JetStream\/."},{"key":"e_1_3_2_2_5_1","unstructured":"JavaScriptCore JavaScript engine. http:\/\/trac.webkit. org\/wiki\/JavaScriptCore.  JavaScriptCore JavaScript engine. http:\/\/trac.webkit. org\/wiki\/JavaScriptCore."},{"key":"e_1_3_2_2_6_1","volume-title":"June","author":"Programming Language Rankings The Redmonk","year":"2015","unstructured":"The Redmonk Programming Language Rankings : June 2015 . The Redmonk Programming Language Rankings: June 2015."},{"key":"e_1_3_2_2_7_1","unstructured":"https:\/\/redmonk.com\/sogrady\/2015\/07\/01\/ language-rankings-6-15\/.  https:\/\/redmonk.com\/sogrady\/2015\/07\/01\/ language-rankings-6-15\/."},{"key":"e_1_3_2_2_8_1","unstructured":"Tizen Platform. https:\/\/www.tizen.org\/.  Tizen Platform. https:\/\/www.tizen.org\/."},{"key":"e_1_3_2_2_9_1","unstructured":"TypeScript. http:\/\/www.typescriptlang.org.  TypeScript. http:\/\/www.typescriptlang.org."},{"key":"e_1_3_2_2_10_1","unstructured":"V8 JavaScript Engine. https:\/\/developers.google.com\/ v8\/.  V8 JavaScript Engine. https:\/\/developers.google.com\/ v8\/."},{"key":"e_1_3_2_2_11_1","volume-title":"http:\/\/wala. sf.net","author":"Watson T.J.","year":"2015","unstructured":"T.J. Watson Libraries for Analysis (WALA). http:\/\/wala. sf.net , 2015 . T.J. Watson Libraries for Analysis (WALA). http:\/\/wala. sf.net, 2015."},{"key":"e_1_3_2_2_12_1","doi-asserted-by":"publisher","DOI":"10.1006\/inco.1996.0024"},{"key":"e_1_3_2_2_13_1","doi-asserted-by":"publisher","DOI":"10.5555\/646151.679369"},{"key":"e_1_3_2_2_14_1","doi-asserted-by":"crossref","unstructured":"ISBN 3-540-57120-5. doi:10.1007\/3-540-47910-4_14.    10.1007\/3-540-47910-4_14\nISBN 3-540-57120-5. doi:10.1007\/3-540-47910-4_14.","DOI":"10.1007\/3-540-47910-4_14"},{"key":"e_1_3_2_2_15_1","doi-asserted-by":"publisher","DOI":"10.1016\/S0167-6423(99)00007-6"},{"key":"e_1_3_2_2_16_1","doi-asserted-by":"publisher","DOI":"10.1007\/11531142_19"},{"key":"e_1_3_2_2_17_1","first-page":"670","volume-title":"Presented as part of the 22nd USENIX Security Symposium (USENIX Security 13)","author":"Bhargavan Karthikeyan","year":"2013","unstructured":"Karthikeyan Bhargavan , Antoine Delignat-Lavaud , and Sergio Maffeis . Language-based defenses against untrusted browser origins . In Presented as part of the 22nd USENIX Security Symposium (USENIX Security 13) , pages 653\u2013 670 , Washington, D.C. , 2013 . USENIX. ISBN 978-1-931971-03-4. Karthikeyan Bhargavan, Antoine Delignat-Lavaud, and Sergio Maffeis. Language-based defenses against untrusted browser origins. In Presented as part of the 22nd USENIX Security Symposium (USENIX Security 13), pages 653\u2013670, Washington, D.C., 2013. USENIX. ISBN 978-1-931971-03-4."},{"key":"e_1_3_2_2_18_1","first-page":"229","volume-title":"Mathematical Foundations of Computer Science","author":"Bono Viviana","year":"1996","unstructured":"Viviana Bono , Michele Bugliesi , and Luigi Liquori . A Lambda Calculus of Incomplete Objects . In Mathematical Foundations of Computer Science 1996 , pages 218\u2013 229 . Springer, 1996. Viviana Bono, Michele Bugliesi, and Luigi Liquori. A Lambda Calculus of Incomplete Objects. In Mathematical Foundations of Computer Science 1996, pages 218\u2013229. Springer, 1996."},{"key":"e_1_3_2_2_19_1","doi-asserted-by":"crossref","unstructured":"doi:10.1007\/3-540-61550-4_150.    10.1007\/3-540-61550-4_150\ndoi:10.1007\/3-540-61550-4_150.","DOI":"10.1007\/3-540-61550-4_150"},{"key":"e_1_3_2_2_20_1","volume-title":"Springer","author":"Bono Viviana","year":"1997","unstructured":"Viviana Bono , Michele Bugliesi , Mariangiola Dezani-Ciancaglini , and Luigi Liquori . Subtyping Constraints for Incomplete Objects. In TAPSOFT\u201997: Theory and Practice of Software Development, pages 465\u2013477 . Springer , 1997 . Viviana Bono, Michele Bugliesi, Mariangiola Dezani-Ciancaglini, and Luigi Liquori. Subtyping Constraints for Incomplete Objects. In TAPSOFT\u201997: Theory and Practice of Software Development, pages 465\u2013477. Springer, 1997."},{"key":"e_1_3_2_2_21_1","doi-asserted-by":"crossref","unstructured":"doi:10.1007\/BFb0030619.    10.1007\/BFb0030619\ndoi:10.1007\/BFb0030619.","DOI":"10.1007\/BFb0030619"},{"key":"e_1_3_2_2_22_1","volume-title":"Samsung Research America","author":"Chandra Satish","year":"2016","unstructured":"Satish Chandra , Colin S. Gordon , Jean-Baptiste Jeannin , Cole Schlesinger , Manu Sridharan , Frank Tip , and Young-il Choi. Type Inference for Static Compilation of JavaScript. Technical report , Samsung Research America , August 2016 . Satish Chandra, Colin S. Gordon, Jean-Baptiste Jeannin, Cole Schlesinger, Manu Sridharan, Frank Tip, and Young-il Choi. Type Inference for Static Compilation of JavaScript. Technical report, Samsung Research America, August 2016."},{"key":"e_1_3_2_2_23_1","volume-title":"Personal communication","author":"Chaudhuri Avik","year":"2016","unstructured":"Avik Chaudhuri . Personal communication , 2016 . Avik Chaudhuri. Personal communication, 2016."},{"key":"e_1_3_2_2_25_1","first-page":"198","volume-title":"SAS 2015, Saint-Malo, France, September 9-11, 2015","author":"Choi Wontae","year":"2015","unstructured":"Wontae Choi , Satish Chandra , George C. Necula , and Koushik Sen . SJS : A Type System for JavaScript with Fixed Object Layout. In Static Analysis - 22nd International Symposium , SAS 2015, Saint-Malo, France, September 9-11, 2015 , Proceedings , pages 181\u2013 198 , 2015 . doi:10.1007\/978-3-662-48288-9_11. 10.1007\/978-3-662-48288-9_11 Wontae Choi, Satish Chandra, George C. Necula, and Koushik Sen. SJS: A Type System for JavaScript with Fixed Object Layout. In Static Analysis - 22nd International Symposium, SAS 2015, Saint-Malo, France, September 9-11, 2015, Proceedings, pages 181\u2013198, 2015. doi:10.1007\/978-3-662-48288-9_11."},{"key":"e_1_3_2_2_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/289423.289448"},{"key":"e_1_3_2_2_27_1","doi-asserted-by":"publisher","DOI":"10.1006\/inco.2001.2963"},{"key":"e_1_3_2_2_28_1","doi-asserted-by":"crossref","unstructured":"doi:10.1006\/inco.2001.2963.    10.1006\/inco.2001.2963\ndoi:10.1006\/inco.2001.2963.","DOI":"10.1006\/inco.2001.2963"},{"key":"e_1_3_2_2_29_1","volume-title":"MIT Press","author":"Pottier Fran\u00e7ois","year":"2005","unstructured":"Fran\u00e7ois Pottier and Didier R\u00e9my . The Essence of ML Type Inference. In Benjamin C. Pierce, editor, Advanced Topics in Types and Programming Languages, chapter 10, pages 389\u2013 489 . MIT Press , 2005 . Fran\u00e7ois Pottier and Didier R\u00e9my. The Essence of ML Type Inference. In Benjamin C. Pierce, editor, Advanced Topics in Types and Programming Languages, chapter 10, pages 389\u2013 489. MIT Press, 2005."},{"key":"e_1_3_2_2_30_1","volume-title":"O\u2019Reilly Media","author":"Crockford Douglas","year":"2008","unstructured":"Douglas Crockford . JavaScript : The Good Parts . O\u2019Reilly Media , 2008 . Douglas Crockford. JavaScript: The Good Parts. O\u2019Reilly Media, 2008."},{"key":"e_1_3_2_2_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/582153.582176"},{"key":"e_1_3_2_2_32_1","first-page":"61","volume-title":"Fundamentals of Computation Theory","author":"Fisher Kathleen","unstructured":"Kathleen Fisher and John C Mitchell . A Delegation-based Object Calculus with Subtyping . In Fundamentals of Computation Theory , pages 42\u2013 61 . Springer, 1995. doi:10.1007\/3- 540-60249-6_40. 10.1007\/3- Kathleen Fisher and John C Mitchell. A Delegation-based Object Calculus with Subtyping. In Fundamentals of Computation Theory, pages 42\u201361. Springer, 1995. doi:10.1007\/3- 540-60249-6_40."},{"key":"e_1_3_2_2_33_1","first-page":"150","volume-title":"Shriram Krishnamurthi. The Essence of JavaScript. In European Conference on Object-Oriented Programming (ECOOP)","author":"Guha Arjun","unstructured":"Arjun Guha , Claudiu Saftoiu , and Shriram Krishnamurthi. The Essence of JavaScript. In European Conference on Object-Oriented Programming (ECOOP) , pages 126\u2013 150 . Springer, 2010. doi:10.1007\/978-3-642-14107-2_7. 10.1007\/978-3-642-14107-2_7 Arjun Guha, Claudiu Saftoiu, and Shriram Krishnamurthi. The Essence of JavaScript. In European Conference on Object-Oriented Programming (ECOOP), pages 126\u2013150. Springer, 2010. doi:10.1007\/978-3-642-14107-2_7."},{"key":"e_1_3_2_2_34_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-03237-0_17"},{"key":"e_1_3_2_2_35_1","doi-asserted-by":"crossref","unstructured":"doi:10.1007\/978-3-642-03237-0_17.    10.1007\/978-3-642-03237-0_17\ndoi:10.1007\/978-3-642-03237-0_17.","DOI":"10.1007\/978-3-642-03237-0_17"},{"key":"e_1_3_2_2_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/2508168.2508170"},{"key":"e_1_3_2_2_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/2983990.2983994"},{"key":"e_1_3_2_2_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/117954.117965"},{"key":"e_1_3_2_2_39_1","doi-asserted-by":"crossref","unstructured":"ISBN 0-201-55417-8. doi:10.1145\/117954.117965.    10.1145\/117954.117965\nISBN 0-201-55417-8. doi:10.1145\/117954.117965.","DOI":"10.1145\/117954.117965"},{"key":"e_1_3_2_2_40_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.ic.2003.10.001"},{"key":"e_1_3_2_2_41_1","first-page":"37","volume-title":"Shriram Krishnamurthi. Semantics and Types for Objects with First-class Member Names. In FOOL 2012:  19th International Workshop on Foundations of Object-Oriented Languages","author":"Politz Joe Gibbs","year":"2012","unstructured":"Joe Gibbs Politz , Arjun Guha , and Shriram Krishnamurthi. Semantics and Types for Objects with First-class Member Names. In FOOL 2012: 19th International Workshop on Foundations of Object-Oriented Languages , page 37 , 2012 . Joe Gibbs Politz, Arjun Guha, and Shriram Krishnamurthi. Semantics and Types for Objects with First-class Member Names. In FOOL 2012: 19th International Workshop on Foundations of Object-Oriented Languages, page 37, 2012."},{"key":"e_1_3_2_2_42_1","doi-asserted-by":"publisher","DOI":"10.1145\/2103656.2103714"},{"key":"e_1_3_2_2_43_1","doi-asserted-by":"crossref","unstructured":"doi:10.1145\/2103621.2103714.    10.1145\/2103621.2103714\ndoi:10.1145\/2103621.2103714.","DOI":"10.1145\/2103621.2103714"},{"key":"e_1_3_2_2_44_1","doi-asserted-by":"publisher","DOI":"10.1145\/2676726.2676971"},{"key":"e_1_3_2_2_45_1","first-page":"220","volume-title":"European Symposium on Programming","author":"R\u00e9my Didier","unstructured":"Didier R\u00e9my . From classes to objects via subtyping . In European Symposium on Programming , pages 200\u2013 220 . Springer, 1998. doi:10.1007\/BFb0053572. 10.1007\/BFb0053572 Didier R\u00e9my. From classes to objects via subtyping. In European Symposium on Programming, pages 200\u2013220. Springer, 1998. doi:10.1007\/BFb0053572."},{"key":"e_1_3_2_2_46_1","doi-asserted-by":"publisher","DOI":"10.1002\/(SICI)1096-9942(1998)4:1%3C27::AID-TAPO3%3E3.0.CO;2-4"},{"key":"e_1_3_2_2_47_1","doi-asserted-by":"publisher","DOI":"10.1145\/1806596.1806598"},{"key":"e_1_3_2_2_48_1","first-page":"100","volume-title":"29th European Conference on Object-Oriented Programming (ECOOP 2015), volume 37 of Leibniz International Proceedings in Informatics (LIPIcs)","author":"Richards Gregor","year":"2015","unstructured":"Gregor Richards , Francesco Zappa Nardelli , and Jan Vitek . Concrete Types for TypeScript. In John Tang Boyland, editor , 29th European Conference on Object-Oriented Programming (ECOOP 2015), volume 37 of Leibniz International Proceedings in Informatics (LIPIcs) , pages 76\u2013 100 , Dagstuhl, Germany , 2015 . Schloss Dagstuhl\u2013Leibniz-Zentrum fuer Informatik. ISBN 978-3-939897-86-6. doi:10.4230\/LIPIcs.ECOOP.2015.76. 10.4230\/LIPIcs.ECOOP.2015.76 Gregor Richards, Francesco Zappa Nardelli, and Jan Vitek. Concrete Types for TypeScript. In John Tang Boyland, editor, 29th European Conference on Object-Oriented Programming (ECOOP 2015), volume 37 of Leibniz International Proceedings in Informatics (LIPIcs), pages 76\u2013 100, Dagstuhl, Germany, 2015. Schloss Dagstuhl\u2013Leibniz-Zentrum fuer Informatik. ISBN 978-3-939897-86-6. doi:10.4230\/LIPIcs.ECOOP.2015.76."},{"key":"e_1_3_2_2_49_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-662-46669-8_18"},{"key":"e_1_3_2_2_50_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-31987-0_28"},{"key":"e_1_3_2_2_51_1","first-page":"365","volume-title":"Third International Symposium, SAS\u201996","author":"Trifonov Valery","year":"1996","unstructured":"Valery Trifonov and Scott F. Smith . Subtyping Constrained Types. In Static Analysis , Third International Symposium, SAS\u201996 , Aachen, Germany , September 24-26, 1996 , Proceedings, pages 349\u2013 365 , 1996. doi:10.1007\/3-540-61739-6_52. 10.1007\/3-540-61739-6_52 Valery Trifonov and Scott F. Smith. Subtyping Constrained Types. In Static Analysis, Third International Symposium, SAS\u201996, Aachen, Germany, September 24-26, 1996, Proceedings, pages 349\u2013365, 1996. doi:10.1007\/3-540-61739-6_52."},{"key":"e_1_3_2_2_52_1","doi-asserted-by":"publisher","DOI":"10.1145\/2661088.2661101"},{"key":"e_1_3_2_2_53_1","doi-asserted-by":"crossref","unstructured":"doi:10.1145\/2775052.2661101.    10.1145\/2775052.2661101\ndoi:10.1145\/2775052.2661101.","DOI":"10.1145\/2775052.2661101"},{"key":"e_1_3_2_2_54_1","first-page":"44","volume-title":"LICS","volume":"87","author":"Wand Mitchell","year":"1987","unstructured":"Mitchell Wand . Complete Type Inference for Simple Objects . In LICS , volume 87 , pages 37\u2013 44 , 1987 . Mitchell Wand. Complete Type Inference for Simple Objects. In LICS, volume 87, pages 37\u201344, 1987."},{"key":"e_1_3_2_2_55_1","first-page":"97","volume-title":"Logic in Computer Science, 1989. LICS\u201989, Proceedings., Fourth Annual Symposium on","author":"Wand Mitchell","unstructured":"Mitchell Wand . Type Inference for Record Concatenation and Multiple Inheritance . In Logic in Computer Science, 1989. LICS\u201989, Proceedings., Fourth Annual Symposium on , pages 92\u2013 97 . IEEE, 1989. doi:10.1016\/0890-5401(91)90050-C. Introduction Overview Type System Requirements The Type System Inference Challenges Terms, Types, and Constraint Generation Terms Types Subtyping and Type Equivalence Constraint Language Constraint Generation Constraint Solving Type Propagation Type Ascription Soundness of Type Inference Evaluation Practical Considerations Explanation of Workarounds More Problematic Constructs The Promise of Ahead-of-Time Compilation Related Work 10.1016\/0890-5401(91)90050-C Mitchell Wand. Type Inference for Record Concatenation and Multiple Inheritance. In Logic in Computer Science, 1989. LICS\u201989, Proceedings., Fourth Annual Symposium on, pages 92\u201397. IEEE, 1989. doi:10.1016\/0890-5401(91)90050-C. Introduction Overview Type System Requirements The Type System Inference Challenges Terms, Types, and Constraint Generation Terms Types Subtyping and Type Equivalence Constraint Language Constraint Generation Constraint Solving Type Propagation Type Ascription Soundness of Type Inference Evaluation Practical Considerations Explanation of Workarounds More Problematic Constructs The Promise of Ahead-of-Time Compilation Related Work"}],"event":{"name":"SPLASH '16: Conference on Systems, Programming, Languages, and Applications: Software for Humanity","location":"Amsterdam Netherlands","acronym":"SPLASH '16","sponsor":["SIGPLAN ACM Special Interest Group on Programming Languages","SIGAda ACM Special Interest Group on Ada Programming Language"]},"container-title":["Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications"],"original-title":[],"link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2983990.2984017","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2983990.2984017","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T23:39:53Z","timestamp":1750203593000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2983990.2984017"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2016,10,19]]},"references-count":54,"alternative-id":["10.1145\/2983990.2984017","10.1145\/2983990"],"URL":"https:\/\/doi.org\/10.1145\/2983990.2984017","relation":{"is-identical-to":[{"id-type":"doi","id":"10.1145\/3022671.2984017","asserted-by":"object"}]},"subject":[],"published":{"date-parts":[[2016,10,19]]},"assertion":[{"value":"2016-10-19","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}