• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    一種JS引擎容錯(cuò)方法和裝置制造方法及圖紙

    技術(shù)編號(hào):15690730 閱讀:217 留言:0更新日期:2017-06-24 03:21
    本申請(qǐng)公開(kāi)一種JS引擎容錯(cuò)方法和裝置。JS引擎在獲取JavaScript腳本后并將JavaScript腳本進(jìn)行解析生成JS引擎可識(shí)別的token代碼。進(jìn)而,對(duì)解析生成token代碼進(jìn)行檢測(cè),確定token代碼中的異常代碼,并記錄所述異常代碼的起始位置和長(zhǎng)度,從而確定JavaScript腳本中錯(cuò)誤腳本的所在位置。進(jìn)一步,根據(jù)異常代碼的起始位置和長(zhǎng)度,確定下一條正常腳本的起始位置,從而跳過(guò)錯(cuò)誤腳本而繼續(xù)執(zhí)行正常腳本。

    Fault tolerant method and device for JS engine

    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.

    【技術(shù)實(shí)現(xiàn)步驟摘要】
    一種JS引擎容錯(cuò)方法和裝置
    本申請(qǐng)涉及計(jì)算機(jī)領(lǐng)域,更具體地說(shuō),涉及一種JS引擎容錯(cuò)方法和裝置。
    技術(shù)介紹
    JavaScript是一種直譯式腳本語(yǔ)言,是一種動(dòng)態(tài)類型、弱類型、基于原型的語(yǔ)言。它的解釋器被稱為JavaScript引擎,為瀏覽器的一部分,是一個(gè)專門處理JavaScript腳本的虛擬機(jī)。參見(jiàn)圖1示出了JavaScript引擎的工作原理示意圖。JavaScript引擎先將腳本代碼進(jìn)行詞法分析和語(yǔ)法分析。詞法分析(lexer),其實(shí)就是一個(gè)掃描器,依據(jù)語(yǔ)言的定義,提取出源文件中的內(nèi)容變?yōu)橐粋€(gè)個(gè)語(yǔ)法可以識(shí)別的token,比如關(guān)鍵字,操作符,常量等。語(yǔ)法分析(paser),它的功能就是根據(jù)語(yǔ)法(token的順序組合),識(shí)別出不同的語(yǔ)義(目標(biāo)操作)。這是輸入文本轉(zhuǎn)為一種它可以理解的語(yǔ)義形式(抽象語(yǔ)法樹(shù)),或者更進(jìn)一步生成供后續(xù)使用的中間代碼(字節(jié)碼),解釋器就是負(fù)責(zé)執(zhí)行解析輸出的結(jié)果。比如一段JavaScript腳本:vara=1;經(jīng)過(guò)詞法lexer可能被識(shí)別為以下的tokens:VARIABLEEQUALCONSTANTEND經(jīng)過(guò)語(yǔ)法parser一分析,就了解這是一個(gè)“賦值操作,向變量a賦值常量1”。隨后再調(diào)用對(duì)應(yīng)的操作加以執(zhí)行。在現(xiàn)有技術(shù)中,當(dāng)JavaScript的某條腳本錯(cuò)誤時(shí),JS引擎則會(huì)中斷程序執(zhí)行,無(wú)法讀取下一條腳本。
    技術(shù)實(shí)現(xiàn)思路
    有鑒于此,本申請(qǐng)?zhí)峁┮环NJS引擎容錯(cuò)方法和裝置,以在JavaScript腳本的某條語(yǔ)句有誤時(shí),仍可以讀取下一條腳本。為了實(shí)現(xiàn)上述目的,現(xiàn)提出的方案如下:一種JS引擎容錯(cuò)方法,包括:獲取所有JavaScript腳本,并將所述JavaScript腳本進(jìn)行解析生成所述JS引擎可識(shí)別的token代碼;對(duì)所述token代碼進(jìn)行檢測(cè),確定所述token代碼中的異常代碼,并記錄所述異常代碼的起始位置和長(zhǎng)度,以確定錯(cuò)誤JavaScript腳本的所在位置;根據(jù)所述異常代碼的起始位置和長(zhǎng)度,確定下一條正常JavaScript腳本的起始位置。優(yōu)選的,所述對(duì)所述token代碼進(jìn)行檢測(cè),確定所述token代碼中的異常代碼,并記錄所述異常代碼的起始位置和長(zhǎng)度,以確定錯(cuò)誤JavaScript腳本的所在位置,之后還包括:確定所述錯(cuò)誤JavaScript腳本的錯(cuò)誤類型,并采用錯(cuò)誤碼進(jìn)行標(biāo)識(shí)。優(yōu)選的,所述確定所述錯(cuò)誤JavaScript腳本的錯(cuò)誤類型,并采用錯(cuò)誤碼進(jìn)行標(biāo)識(shí),之后還包括:對(duì)所述異常代碼進(jìn)行處理,以使所述異常代碼可正常執(zhí)行。一種JS引擎容錯(cuò)裝置,包括:腳本獲取解析單元,用于獲取所有JavaScript腳本,并將所述JavaScript腳本進(jìn)行解析生成所述JS引擎可識(shí)別的token代碼;錯(cuò)誤腳本位置確定單元,用于對(duì)所述token代碼進(jìn)行檢測(cè),確定所述token代碼中的異常代碼,并記錄所述異常代碼的起始位置和長(zhǎng)度,以確定錯(cuò)誤JavaScript腳本的所在位置;正常腳本執(zhí)行單元,用于根據(jù)所述異常代碼的起始位置和長(zhǎng)度,跳過(guò)所述錯(cuò)誤JavaScript腳本,以執(zhí)行下一條正常JavaScript腳本。優(yōu)選的,還包括:錯(cuò)誤腳本類型確定單元,用于確定所述錯(cuò)誤JavaScript腳本的錯(cuò)誤類型,并采用錯(cuò)誤碼進(jìn)行標(biāo)識(shí)。優(yōu)選的,還包括:錯(cuò)誤腳本處理單元,用于對(duì)所述錯(cuò)誤腳本對(duì)應(yīng)的所述異常代碼進(jìn)行處理,以使所述異常代碼可正常執(zhí)行。經(jīng)由上述技術(shù)方案可知,本申請(qǐng)公開(kāi)一種JS引擎容錯(cuò)方法和裝置。JS引擎在獲取JavaScript腳本后并將JavaScript腳本進(jìn)行解析生成JS引擎可識(shí)別的token代碼。進(jìn)而,對(duì)解析生成token代碼進(jìn)行檢測(cè),確定token代碼中的異常代碼,并記錄所述異常代碼的起始位置和長(zhǎng)度,從而確定JavaScript腳本中錯(cuò)誤腳本的所在位置。進(jìn)一步,根據(jù)異常代碼的起始位置和長(zhǎng)度,確定下一條正常腳本的起始位置,從而跳過(guò)錯(cuò)誤腳本而繼續(xù)執(zhí)行正常腳本。附圖說(shuō)明為了更清楚地說(shuō)明本專利技術(shù)實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本專利技術(shù)的實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。圖1示出了JavaScript引擎的工作原理示意圖;圖2示出了本專利技術(shù)一個(gè)實(shí)施例公開(kāi)的一種JS引擎容錯(cuò)方法的流程示意圖;圖3示出了本專利技術(shù)另一個(gè)實(shí)施例公開(kāi)的一種JS引擎容錯(cuò)方法的流程示意圖;圖4示出了本專利技術(shù)另一個(gè)實(shí)施例公開(kāi)的一種JS引擎容錯(cuò)裝置的結(jié)構(gòu)示意圖;圖5示出了本專利技術(shù)另一個(gè)實(shí)施例公開(kāi)的一種JS引擎容錯(cuò)裝置的結(jié)構(gòu)示意圖。具體實(shí)施方式下面將結(jié)合本專利技術(shù)實(shí)施例中的附圖,對(duì)本專利技術(shù)實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本專利技術(shù)一部分實(shí)施例,而不是全部的實(shí)施例。基于本專利技術(shù)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本專利技術(shù)保護(hù)的范圍。參見(jiàn)圖2示出了本專利技術(shù)一個(gè)實(shí)施例公開(kāi)的一種JS引擎容錯(cuò)方法的流程示意圖。由圖2可知,本專利技術(shù)包括:S201:獲取所有JavaScript腳本,并將所述JavaScript腳本進(jìn)行解析生成所述JS引擎可識(shí)別的token代碼。JavaScript引擎先將腳本代碼進(jìn)行詞法分析,依據(jù)語(yǔ)言的定義,提取出源文件中的內(nèi)容變?yōu)橐粋€(gè)個(gè)語(yǔ)法可以識(shí)別的token,比如關(guān)鍵字,操作符,常量等。S202:對(duì)所述token代碼進(jìn)行檢測(cè),確定所述token代碼中的異常代碼,并記錄所述異常代碼的起始位置和長(zhǎng)度,以確定錯(cuò)誤JavaScript腳本的所在位置。JavaScript腳本報(bào)錯(cuò)的原因其實(shí)有很多種,比如變量、函數(shù)沒(méi)定義,break、return語(yǔ)句使用不當(dāng),各種筆誤等等。當(dāng)JavaScript腳本出現(xiàn)錯(cuò)誤時(shí),JavaScript腳本所對(duì)應(yīng)的token代碼也會(huì)出現(xiàn)錯(cuò)誤,通過(guò)對(duì)token代碼進(jìn)行檢測(cè)即可確定出現(xiàn)錯(cuò)誤的JavaScript腳本。S203:根據(jù)所述異常代碼的起始位置和長(zhǎng)度,確定下一條正常JavaScript腳本的起始位置。記錄異常代碼的起始位置start_position,根據(jù)異常代碼的長(zhǎng)度計(jì)算出偏移量offect,最后start_position+offect得出下一條正常JavaScript腳本的開(kāi)始位置。由上述實(shí)施例可知,本申請(qǐng)公開(kāi)一種JS引擎容錯(cuò)方法。JS引擎在獲取JavaScript腳本后并將JavaScript腳本進(jìn)行解析生成JS引擎可識(shí)別的token代碼。進(jìn)而,對(duì)解析生成token代碼進(jìn)行檢測(cè),確定token代碼中的異常代碼,并記錄所述異常代碼的起始位置和長(zhǎng)度,從而確定JavaScript腳本中錯(cuò)誤腳本的所在位置。進(jìn)一步,根據(jù)異常代碼的起始位置和長(zhǎng)度,確定下一條正常腳本的起始位置,從而跳過(guò)錯(cuò)誤腳本而繼續(xù)執(zhí)行正常腳本。參見(jiàn)圖3示出了本專利技術(shù)另一個(gè)實(shí)施例公開(kāi)的一種JS引擎容錯(cuò)方法的流程示意圖。由圖3可知,該方法包括:S301:獲取所有JavaScript腳本,并將所述JavaScript腳本進(jìn)行解析生成所述JS引擎可識(shí)別的token代碼。JavaScript引擎先將腳本代碼進(jìn)行詞法分析,依據(jù)語(yǔ)言的定義,提取出源文件中的內(nèi)容變?yōu)橐粋€(gè)個(gè)語(yǔ)法可以識(shí)別的token,比如關(guān)鍵字,操作符,常量等。S302:對(duì)所述token代碼進(jìn)行檢測(cè)本文檔來(lái)自技高網(wǎng)...
    一種JS引擎容錯(cuò)方法和裝置

    【技術(shù)保護(hù)點(diǎn)】
    一種JS引擎容錯(cuò)方法,其特征在于,包括:獲取所有JavaScript腳本,并將所述JavaScript腳本進(jìn)行解析生成所述JS引擎可識(shí)別的token代碼;對(duì)所述token代碼進(jìn)行檢測(cè),確定所述token代碼中的異常代碼,并記錄所述異常代碼的起始位置和長(zhǎng)度,以確定錯(cuò)誤JavaScript腳本的所在位置;根據(jù)所述異常代碼的起始位置和長(zhǎng)度,確定下一條正常JavaScript腳本的起始位置。

    【技術(shù)特征摘要】
    1.一種JS引擎容錯(cuò)方法,其特征在于,包括:獲取所有JavaScript腳本,并將所述JavaScript腳本進(jìn)行解析生成所述JS引擎可識(shí)別的token代碼;對(duì)所述token代碼進(jìn)行檢測(cè),確定所述token代碼中的異常代碼,并記錄所述異常代碼的起始位置和長(zhǎng)度,以確定錯(cuò)誤JavaScript腳本的所在位置;根據(jù)所述異常代碼的起始位置和長(zhǎng)度,確定下一條正常JavaScript腳本的起始位置。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對(duì)所述token代碼進(jìn)行檢測(cè),確定所述token代碼中的異常代碼,并記錄所述異常代碼的起始位置和長(zhǎng)度,以確定錯(cuò)誤JavaScript腳本的所在位置,之后還包括:確定所述錯(cuò)誤JavaScript腳本的錯(cuò)誤類型,并采用錯(cuò)誤碼進(jìn)行標(biāo)識(shí)。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述確定所述錯(cuò)誤JavaScript腳本的錯(cuò)誤類型,并采用錯(cuò)誤碼進(jìn)行標(biāo)識(shí),之后還包括:對(duì)所述異常代碼進(jìn)行...

    【專利技術(shù)屬性】
    技術(shù)研發(fā)人員:徐佳宏朱呂亮梁達(dá)源
    申請(qǐng)(專利權(quán))人:深圳市茁壯網(wǎng)絡(luò)股份有限公司
    類型:發(fā)明
    國(guó)別省市:廣東,44

    網(wǎng)友詢問(wèn)留言 已有0條評(píng)論
    • 還沒(méi)有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。

    1
    主站蜘蛛池模板: 精品无码中出一区二区| 嫩草影院无码av| 久久久久亚洲AV无码麻豆| 久久午夜无码免费| 中文字幕韩国三级理论无码| 无码熟妇αⅴ人妻又粗又大| 无码一区二区三区在线观看 | 成人免费无码大片a毛片软件 | 亚洲国产精品无码久久一线| 久久精品中文字幕无码绿巨人| 无码国模国产在线无码精品国产自在久国产 | 日韩精品无码一区二区三区免费| 日韩人妻系列无码专区| 中文字幕AV无码一区二区三区| 亚洲热妇无码AV在线播放| 亚洲精品一级无码中文字幕| 日韩精品无码区免费专区| 久久久久精品国产亚洲AV无码| 亚洲中文字幕无码爆乳AV| 亚洲成av人片不卡无码久久| 九九在线中文字幕无码| 日韩精品无码一区二区三区免费 | 无码人妻一区二区三区一| 台湾无码AV一区二区三区| 人妻中文字幕AV无码专区| 亚洲AV无码一区二区一二区| 精品无码无人网站免费视频| 无码H肉动漫在线观看| 无码久久精品国产亚洲Av影片| 国产爆乳无码视频在线观看| 亚洲桃色AV无码| 亚洲AV综合色区无码另类小说| 国产成人无码精品一区二区三区 | 粉嫩高中生无码视频在线观看| 无码熟妇人妻AV在线影院| 国产精品无码一区二区三区不卡| 亚洲中文字幕无码久久2020| 亚洲av永久无码一区二区三区| 老司机无码精品A| 亚洲无码视频在线| 一本无码中文字幕在线观|