javascriptCore是webkit原生的js解析器,2008年被重写改名为SquirrelFish,可以参考
http://www.webkit.org/blog/189/announcing-squirrelfish/
其实现的是ECMAScript edition 3,可以参考
http://en.wikipedia.org/wiki/ECMAScript
要做的扩展是:
1。在js解析失败时,打印出url、行号和失败原因,以便查找原因。
2。在js运行时,如果出现错误,在没有被catch的情况下,可以被忽略,让js继续执行。
实现:
1。只要js有错误,就会生成一个Error类,打印可以在这里加,所需要的信息都会有
2。js运行有两种方式,一种是VM,一种是JIT
但是无论那种js执行时,如果有错误,都会调用到一个throw错误处理,
这里首先去找js有没有写catch,如果没有就退出执行,
这时可以不让js退出,让它继续执行,就可以了,
但是要注意,这时错误语句返回的变量还没有初始化