写点什么

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

  • 2011-08-11
  • 本文字数:847 字

    阅读完需:约 3 分钟

如今的 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

2011-08-11 02:163368
用户头像

发布了 501 篇内容, 共 272.3 次阅读, 收获喜欢 62 次。

关注

评论

发布
暂无评论
发现更多内容

ConcurrentHashMap 源码深度解析(java7)原来如此简单(写的真好,建议收藏)

徐同学呀

ConcurrentHashMap Java源码 JUC

区块链食品安全追溯系统,区块链溯源优势

13530558032

iOS 面试策略之算法基础4-5节

iOSer

ios 面试 算法面经 算法解析

程序员快乐的一天!

BinTools图尔兹

程序员 运维 开发 dba 数据库管理工具

portal 认证 - 下线流程

箭上有毒

4月日更

有道写作浏览器扩展实践

有道技术团队

大前端 浏览器 有道云笔记

聪明人的训练(十五)

Changing Lin

4月日更

ConcurrentHashMap源码深度解析(一)(java8)不可不知的基本概念(助你拿下源码事半功倍)

徐同学呀

ConcurrentHashMap Java源码 JUC

无代码开发会是未来的趋势吗?

优秀

无代码

一文看懂Modbus协议

不脱发的程序猿

物联网 通信协议 智能硬件 4月日更 Modbus协议

编排包在设计与运行两态之间的运用价值体现

鲸品堂

服务编排 实践案例

2021年5个最佳YouTube视频下载器

科技猫

软件 工具 网站 分享 下载youtube视频

直播选择 RTC 还是 RTMP?

anyRTC开发者

音视频 WebRTC CDN RTC RTMP

知乎载量破100W !阿里大佬的Java性能调优实战手册 一网打尽BAT大厂

比伯

Java 程序员 架构 面试

涨薪5K的Java虚拟机:垃圾回收,Serial GC,卡表你想学吗?

小Q

Java 学习 面试 JVM GC

阿里P8亲自讲解!带你一步一步深入Handler源码,满满干货指导

欢喜学安卓

android 程序员 面试 移动开发

进公司不会用 Git 拉项目!第二天被开除?

Java架构师迁哥

python 实现类属性的懒加载装饰器

一代咩神

Python 懒加载 类属性 描述器

ConcurrentHashMap源码深度解析(二)(java8)直呼Doug Lea是真的细(带你参透扩容机制)

徐同学呀

ConcurrentHashMap Java源码 JUC

智慧平安社区整体解决方案,智慧安防小区建设

13530558032

数据虚拟化引擎openLooKeng介绍

LooK

大数据 数据分析 Bigdata

Python和Java的区别

Sakura

4月日更

看了这篇MySQL,开发功力又升级

学Java关注我

Java 编程 程序员 架构 计算机

混沌大佬系列第二期 - Jesse Robbins

混沌工程实践

混沌工程 混沌大佬 灾难大师 游戏日 GameDay

HDFS的动态扩容及动态缩容

五分钟学大数据

hadoop hdfs 4月日更

阿里P8大牛亲自教你!带你快速通过面试,Android岗

欢喜学安卓

android 程序员 面试 移动开发

面试官:Java中线程是按什么顺序执行的?

华为云开发者联盟

Java 线程 执行顺序 多线程并发

区块链电子合同一体化平台--破解信任难题

13530558032

一个单例还能写出花来吗?

艾小仙

Java 设计模式

科技赋能快餐零售商突破瓶颈:英特尔AI技术助力汉堡王打造保护顾客隐私的订单推荐系统

E科讯

如何用 Electron + WebRTC 开发一个跨平台的视频会议应用

阿里云CloudImagine

阿里云 音视频 WebRTC Electron 视频云

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