InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

Mozilla、WebKit准备支持对精简JS以及CoffeeScript和其他JS语言的调试

作者 Werner Schuster 译者 崔康 发布于 2011年8月11日

领域
语言 & 开发
主题
JavaScript ,
Ruby ,
Java ,
动态语言 ,
调试器 ,
.NET ,
语言 ,
调试 ,
编程

如今的Web和Javascript调试器已经非常强大,并很好地集成在浏览器中——但是必须满足的条件是调试器中的代码是原始的、手写的。现在,大量执行和部署的Javascript通过软件生成,而不是开发人员。最常见的情况是精简或者压缩后的代码。在这些代码中设置断点非常麻烦甚至无法实现,因为它们往往是单长行形式——即使最初的源代码是格式良好的。

另一个问题是:Javascript成为语言的​编译器目标正在逐渐受到欢迎,主要归功于Javascript VM的普及。CoffeeScript仅仅是新语言的一个例子,最近推出的ClojureScript是现有语言的一个例子,编译为Javascript。调试利用这些语言编写的代码意味着使用生成的Javascript代码,而不是可以设置断点、console.log() 消息和其他源代码相关功能的输入语言。

这个问题由来已久,JVM语言也有类似的问题,从而提出了JSR-045 - Debugging Support for Other Languages,用于编译到JVM的各种语言,如JRuby

源地图(Source Maps,SMAP)是解决办法,例如源语言和目标表示之间的映射文件。Google的Closure编译器可以针对精简后的Javascript文件生成SMAP文件,不过目前能够读取SMAP的工具只有Firebug的扩展——Closure Inspector

Mozilla和WebKit项目在它们的调试功能中启动了对SMAP的支持。

Mozilla针对SMAP和调试功能有一个深入的计划。该文档还提到了源映射的另一个潜在领域——CSS,它也被CSS超集(如SASS或者LESS)用于编译目标。

Mozilla跟踪本次工作的ticket是Bug 618650 - Map JS source coordinates to source language that was translated to JS。规划文档中提到Firefox 9作为目标发布版本。

WebKit也在计划支持SMAP,实际的SMAP格式可能是Closure Inspector格式的改进版,Mozilla也在考虑这种方案。Bug 63940 - Web Inspector: draft implementation of compiler source mappings support in debugger在跟踪这项特性。

查看英文原文Mozilla, WebKit To Support Debugging Minified JS As Well As CoffeeScript and other JS Languages

译者 崔康 热情的技术探索者,资深软件工程师,InfoQ编辑,从事企业级Web应用的相关工作,关注性能优化、Web技术、浏览器等领域。

翻译的真生硬啊~ 发表人 Yuan Shayne 发表于
  1. 返回顶部

    翻译的真生硬啊~

    发表人 Yuan Shayne

    翻译的真生硬啊~