![如何准确定位“recovery.js”(Firefox) 中的 5 个语法错误,并确定它们是什么?](https://linux22.com/image/186148/%E5%A6%82%E4%BD%95%E5%87%86%E7%A1%AE%E5%AE%9A%E4%BD%8D%E2%80%9Crecovery.js%E2%80%9D(Firefox)%20%E4%B8%AD%E7%9A%84%205%20%E4%B8%AA%E8%AF%AD%E6%B3%95%E9%94%99%E8%AF%AF%EF%BC%8C%E5%B9%B6%E7%A1%AE%E5%AE%9A%E5%AE%83%E4%BB%AC%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F.png)
我不小心删除了两个 Firefox 文件(recovery.js 和 recovery.bak),其中包含我使用 Firefox 时打开的大量选项卡的详细信息。
选项卡(网站信息)对我来说非常重要。
我知道recovery.js是javascript。
我已经通过grep硬盘恢复了recovery.js的内容,但是其中有5个语法错误,因此Firefox无法识别或使用它。 recovery.js 大小为 2.1 MB,是一条长记录,没有换行符。
以下 rhino-jsc 命令提供了一些有关语法错误的稀疏信息。我对 rhino-jsc 一无所知,除了它会显示语法错误。 :
$ rhino-jsc RECOVERED-recovery.js
<the javascript was printed here>
Exception in thread "main" org.mozilla.javascript.EvaluatorException:
Compilation produced 5 syntax errors. (RECOVERED-recovery.js#1)
at
org.mozilla.javascript.tools.ToolErrorReporter.runtimeError(ToolErrorReporter.
java:111)
at org.mozilla.javascript.Parser.parse(Parser.java:569)
at org.mozilla.javascript.Parser.parse(Parser.java:478)
at
org.mozilla.javascript.optimizer.ClassCompiler.compileToClassFiles(ClassCompiler
.java:134)
at org.mozilla.javascript.tools.jsc.Main.processSource(Main.java:242)
at org.mozilla.javascript.tools.jsc.Main.main(Main.java:39)
不幸的是,我对javascript一无所知,而且不知道上面的错误消息告诉我什么。
我的问题:
您能告诉我如何找出文件中这 5 个语法错误的位置,最好是确切地找出它们是哪些字符吗?
是否有更好的语法检查器可以让我准确定位错误所在以及错误是什么?出于隐私考虑,我宁愿不使用在线语法检查器。
如果我无法弄清楚要更改什么,以便更正语法错误,是否有一个典型的脚本块*我可以安全地删除包含每个错误的脚本,即使这意味着丢失删除导致的选项卡? (*希望是一个很小的部分)。
我可以使用什么编辑器来编辑巨大的 .js 文件?我的系统上有 Bluefish 编辑器,但它表现出错误的行为。我尝试在 Kate 中打开该文件,但无法加载。十六进制编辑器的问题是文本在 16 个字符宽的小列中显示不方便。
如果我可以纠正语法错误,或者删除它们所在的块,希望 Firefox 能够识别这个 recovery.js。
答案1
该错误向您显示了此处的区域,因此它正在识别名为解析器的部分和第 569 行
Parser.java:569 Parser.java:478 Main.java:242 Main.java:39
这些是java文件,但我检查过,rhino将javascript转换为java,我不认为这是你想要的。而是检查文件安装节点.js然后run node --check RECOVERED_recovery.js
使用该输出中的行号继续
如果你只是删除 JavaScript 块,很可能你会产生更多的语法错误,或者至少使其无法被 Firefox 读取。您可以在另一个目录中重新安装 Firefox 并重新创建默认文件,也许打开一些示例选项卡并退出以创建示例工作恢复文件,然后使用它来查找差异以填补空白或将选项卡数据与损坏的选项卡数据隔离并粘贴进去?
如果 vim、nano 或 emacs 不起作用,请尝试使用atom作为文本编辑器