[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/3184558.3185969acmotherconferencesArticle/Chapter ViewAbstractPublication PagesthewebconfConference Proceedingsconference-collections
research-article
Free access

JSExplain: A Double Debugger for JavaScript

Published: 23 April 2018 Publication History

Abstract

We present JSExplain, a reference interpreter for JavaScript that closely follows the specification and that produces execution traces. These traces may be interactively investigated in a browser, with an interface that displays not only the code and the state of the interpreter, but also the code and the state of the interpreted program. Conditional breakpoints may be expressed with respect to both the interpreter and the interpreted program. In that respect, JSExplain is a double-debugger for the specification of JavaScript.

References

[1]
2017. Babel. (October 25, 2017). https://babeljs.io/.
[2]
2017. Babel proxy plugin. (October 25, 2017). https://www. npmjs.com/package/babel-plugin-proxy.
[3]
Martin Bodin, Arthur Charguéraud, Daniele Filaretti, Philippa Gardner, Sergio Maffeis, Daiva Naudziuniene, Alan Schmitt, and Gareth Smith. 2014. A trusted mechanised javascript specification. In Proceedings of POPL 2014, 87--100.
[4]
2017. Bucklescript. (October 27, 2017). https://bucklescript. github.io/bucklescript/.
[5]
Arthur Charguéraud. 2013. Pretty-big-step semantics. In Proceedings of ESOP 2013 (LNCS). Volume 7792. Springer, 41-- 60.
[6]
ECMA. 2017. Ecmascript 2017 language specification (ecma262, 8th edition). (June 2017). https://www.ecma-international. org/ecma-262/8.0/index.html.
[7]
2017. ECMAScript parsing infrastructure for multipurpose analysis. (October 26, 2017). http://esprima.org/.
[8]
2017. JSExplain. (October 26, 2017). https://jscert.github.io/ jsexplain/branch/master/driver.html.
[9]
Bastian Kruck, Stefan Lehmann, Christoph Keßler, Jakob Reschke, Tim Felgentreff, Jens Lincke, and Robert Hirschfeld. 2016. Multi-level debugging for interpreter developers. In MODULARITY (Companion). ACM, 91--93.
[10]
Sergio Maffeis, John C. Mitchell, and Ankur Taly. 2008. An operational semantics for javascript. In Proceedings of APLAS 2008 (LNCS). Volume 5356. Springer, 307--325.
[11]
Daejun Park, Andrei Stefanescu, and Grigore Rosu. 2015. KJS: a complete formal semantics of javascript. In Proceedings of PLDI 2015. ACM, 346--356.
[12]
2017. Reason. (October 27, 2017). https://reasonml.github.io/.
[13]
Grigore Rosu and Traian-Florin Serbanuta. 2010. An overview of the K semantic framework. Journal of Logic and Algebraic Programming, 79, 6, 397--434.
[14]
2017. TC39 proposals. (October 26, 2017). https://github.com/ tc39/proposals.
[15]
2017. Test262. (October 26, 2017). https://github.com/tc39/ test262.
[16]
The Coq development team. 2014. The Coq proof assistant reference manual. Version 8.4. http://coq.inria.fr.
[17]
Jérôme Vouillon and Vincent Balat. 2014. From bytecode to javascript: the js_of_ocaml compiler. Software: Practice and Exprerience, 44, 8, 951--972.

Cited By

View all
  • (2024)A Coq Mechanization of JavaScript Regular Expression SemanticsProceedings of the ACM on Programming Languages10.1145/36746668:ICFP(1003-1031)Online publication date: 15-Aug-2024
  • (2023)Debugging Dynamic Language Features in a Multi-tier Virtual MachineProceedings of the 15th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages10.1145/3623507.3623549(18-28)Online publication date: 18-Oct-2023
  • (2023)Cross-Level Debugging for Static AnalysersProceedings of the 16th ACM SIGPLAN International Conference on Software Language Engineering10.1145/3623476.3623512(138-148)Online publication date: 23-Oct-2023
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Other conferences
WWW '18: Companion Proceedings of the The Web Conference 2018
April 2018
2023 pages
ISBN:9781450356404
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

  • IW3C2: International World Wide Web Conference Committee

In-Cooperation

Publisher

International World Wide Web Conferences Steering Committee

Republic and Canton of Geneva, Switzerland

Publication History

Published: 23 April 2018

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. debugger
  2. interpreter
  3. javascript

Qualifiers

  • Research-article

Funding Sources

  • CominLabs
  • ANR

Conference

WWW '18
Sponsor:
  • IW3C2
WWW '18: The Web Conference 2018
April 23 - 27, 2018
Lyon, France

Acceptance Rates

Overall Acceptance Rate 1,899 of 8,196 submissions, 23%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)153
  • Downloads (Last 6 weeks)15
Reflects downloads up to 22 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2024)A Coq Mechanization of JavaScript Regular Expression SemanticsProceedings of the ACM on Programming Languages10.1145/36746668:ICFP(1003-1031)Online publication date: 15-Aug-2024
  • (2023)Debugging Dynamic Language Features in a Multi-tier Virtual MachineProceedings of the 15th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages10.1145/3623507.3623549(18-28)Online publication date: 18-Oct-2023
  • (2023)Cross-Level Debugging for Static AnalysersProceedings of the 16th ACM SIGPLAN International Conference on Software Language Engineering10.1145/3623476.3623512(138-148)Online publication date: 23-Oct-2023
  • (2023)MetaData262: Automatic Test Suite Selection for Partial JavaScript ImplementationsProceedings of the 32nd ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3597926.3604923(1499-1502)Online publication date: 13-Jul-2023
  • (2023)Feature-Sensitive Coverage for Conformance Testing of Programming Language ImplementationsProceedings of the ACM on Programming Languages10.1145/35912407:PLDI(493-515)Online publication date: 6-Jun-2023
  • (2022)A Faithful Description of ECMAScript AlgorithmsProceedings of the 24th International Symposium on Principles and Practice of Declarative Programming10.1145/3551357.3551381(1-14)Online publication date: 20-Sep-2022
  • (2022)Automatically deriving JavaScript static analyzers from specifications using Meta-level static analysisProceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3540250.3549097(1022-1034)Online publication date: 7-Nov-2022
  • (2021)JSTARProceedings of the 36th IEEE/ACM International Conference on Automated Software Engineering10.1109/ASE51524.2021.9678781(606-616)Online publication date: 15-Nov-2021
  • (2020)A trustworthy mechanized formalization of RACM SIGPLAN Notices10.1145/3393673.327694653:8(13-24)Online publication date: 6-Apr-2020
  • (2020)JSCleaner: De-Cluttering Mobile Webpages Through JavaScript CleanupProceedings of The Web Conference 202010.1145/3366423.3380157(763-773)Online publication date: 20-Apr-2020
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

HTML Format

View this article in HTML Format.

HTML Format

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media