The present invention discloses a JS engine fault-tolerant method and device. The JS engine parses the JavaScript script after the JavaScript script is acquired and generates the token code that can be identified by the JS engine. Then, analysis of the generated token code for testing, to determine the exception code in token code, and the length and position of recording the exception code, so as to determine the error in the location of the JavaScript script script. Further, the starting position of the next normal script is determined according to the starting position and length of the exception code, thereby skipping the error script and continuing to execute the normal script.
【技术实现步骤摘要】
一种JS引擎容错方法和装置
本申请涉及计算机领域,更具体地说,涉及一种JS引擎容错方法和装置。
技术介绍
JavaScript是一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言。它的解释器被称为JavaScript引擎,为浏览器的一部分,是一个专门处理JavaScript脚本的虚拟机。参见图1示出了JavaScript引擎的工作原理示意图。JavaScript引擎先将脚本代码进行词法分析和语法分析。词法分析(lexer),其实就是一个扫描器,依据语言的定义,提取出源文件中的内容变为一个个语法可以识别的token,比如关键字,操作符,常量等。语法分析(paser),它的功能就是根据语法(token的顺序组合),识别出不同的语义(目标操作)。这是输入文本转为一种它可以理解的语义形式(抽象语法树),或者更进一步生成供后续使用的中间代码(字节码),解释器就是负责执行解析输出的结果。比如一段JavaScript脚本:vara=1;经过词法lexer可能被识别为以下的tokens:VARIABLEEQUALCONSTANTEND经过语法parser一分析,就了解这是一个“赋值操作,向变量a赋值常量1”。随后再调用对应的操作加以执行。在现有技术中,当JavaScript的某条脚本错误时,JS引擎则会中断程序执行,无法读取下一条脚本。
技术实现思路
有鉴于此,本申请提供一种JS引擎容错方法和装置,以在JavaScript脚本的某条语句有误时,仍可以读取下一条脚本。为了实现上述目的,现提出的方案如下:一种JS引擎容错方法,包括:获取所有JavaScript脚本,并将所 ...
【技术保护点】
一种JS引擎容错方法,其特征在于,包括:获取所有JavaScript脚本,并将所述JavaScript脚本进行解析生成所述JS引擎可识别的token代码;对所述token代码进行检测,确定所述token代码中的异常代码,并记录所述异常代码的起始位置和长度,以确定错误JavaScript脚本的所在位置;根据所述异常代码的起始位置和长度,确定下一条正常JavaScript脚本的起始位置。
【技术特征摘要】
1.一种JS引擎容错方法,其特征在于,包括:获取所有JavaScript脚本,并将所述JavaScript脚本进行解析生成所述JS引擎可识别的token代码;对所述token代码进行检测,确定所述token代码中的异常代码,并记录所述异常代码的起始位置和长度,以确定错误JavaScript脚本的所在位置;根据所述异常代码的起始位置和长度,确定下一条正常JavaScript脚本的起始位置。2.根据权利要求1所述的方法,其特征在于,所述对所述token代码进行检测,确定所述token代码中的异常代码,并记录所述异常代码的起始位置和长度,以确定错误JavaScript脚本的所在位置,之后还包括:确定所述错误JavaScript脚本的错误类型,并采用错误码进行标识。3.根据权利要求2所述的方法,其特征在于,所述确定所述错误JavaScript脚本的错误类型,并采用错误码进行标识,之后还包括:对所述异常代码进行...
【专利技术属性】
技术研发人员:徐佳宏,朱吕亮,梁达源,
申请(专利权)人:深圳市茁壮网络股份有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。