CN102736943A - Dynamic compiling and executing method of embedded browser engine - Google Patents

Dynamic compiling and executing method of embedded browser engine Download PDF

Info

Publication number
CN102736943A
CN102736943A CN2012101919936A CN201210191993A CN102736943A CN 102736943 A CN102736943 A CN 102736943A CN 2012101919936 A CN2012101919936 A CN 2012101919936A CN 201210191993 A CN201210191993 A CN 201210191993A CN 102736943 A CN102736943 A CN 102736943A
Authority
CN
China
Prior art keywords
bytecode
compiling
object code
abstract syntax
syntax tree
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2012101919936A
Other languages
Chinese (zh)
Other versions
CN102736943B (en
Inventor
郭文生
桑楠
郭小福
余启洋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Electronic Science and Technology of China
Original Assignee
University of Electronic Science and Technology of China
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by University of Electronic Science and Technology of China filed Critical University of Electronic Science and Technology of China
Priority to CN201210191993.6A priority Critical patent/CN102736943B/en
Publication of CN102736943A publication Critical patent/CN102736943A/en
Application granted granted Critical
Publication of CN102736943B publication Critical patent/CN102736943B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

The invention belongs a dynamic compiling and executing method of a JavaScript engine of an embedded browser, and the method comprises: creating and expanding a combined cache region, compiling a script hot point and an abstract syntax tree, scanning the abstract syntax tree, compiling byte codes and target codes, executing a script and determining and compiling a hot point region. According to the invention, the hot point scanning process is performed in front of the process of converting the abstract syntax tree into byte codes in a dynamic compiling mode in the JavaScript engine of the embedded browser and the advantages of fast explanation and execution response speed and high JIT execution efficiency are fully combined to further detect the hot point beyond the circulating structure in the explanation and execution process. Therefore, the method has the advantages of effectively improving the synchronism and efficiency of dynamic compiling of the JavaScript engine of the embedded browser and the JavaScript script operation, shortening the delay time between the dynamic compiling and executing, quickly executing the JavaScript script, updating the information displayed on a webpage in time and effectively improving the utilization effect of the user.

Description

A kind of built-in browser engine on-the-flier compiler manner of execution
Technical field
The invention belongs to the built-in browser technical field; With regard to a kind of JavaScript engine on-the-flier compiler of built-in browser and the disposal route of execution JavaScript script, adopt this method can effectively improve the synchronism and the efficient of on-the-flier compiler of JavaScript engine and JavaScript script executing especially.
Background technology
Browser is a kind of client software based on HTTP; Its major function is to download web page elements such as web document, picture, CSS from the webserver; The factor that influences browser performance has a lot, and the performance of script engine is one of key factor of decision browser performance.The performance competition of browser is said in a sense, is exactly the performance battle of script engine.The client web application that the affairs that script engine mainly need be handled are exactly the parsing dynamic web page, processing is relevant.These use script commonly used is the JavaScript language; The JavaScript language is widely used because it is distinctive based on objectivity, event-driven property, security.Because the JavaScript language itself is an interpreted language,, the JavaScript engine mainly contains executive mode, the instant compile mode of JIT (instant compiler), the on-the-flier compiler mode explained so carrying out the mode of script.The advantage of explaining executive mode is the delay weak point that carries out script executing; Shortcoming be when carrying out repeatedly the circulation script of carrying out efficient low (after explaining one, one of execution; Because of occur in the source program circulation, interpretive program also repeatedly explain afterwards and move this group statement; The speed of service is very slow), just seem unable to do what one wishes when tackling complicated script operation; The instant compile mode of JIT becomes object code to carry out the script compile of integral body again; Explain that relatively its efficient of executive mode has great raising; But the instant compile mode of JIT is to carry out after whole script is compiled again; Thereby thereby the long delay that causes than the length blanking time of front and back compiling; In order to reduce this delay, to improve operational efficiency, when compiling produces object code, can not carry out sufficient compile optimization and handle; The on-the-flier compiler mode is on the basis of the instant compile mode of JIT; Research influences the key area of script executing efficient; And only carry out JIT and compile (selectivity compiles immediately) immediately to these key areas; This mode has more reasonably been used the JIT(instant compiler); And traditional relatively JIT compiles immediately; Its compiling is more flexible; Postpone also shorter; But this on-the-flier compiler mode needed the JavaScript script is all translated into intermediate code before carrying out; Carrying out key area before intermediate code is carried out and in the implementation then surveys; It is improper to cause its key area to survey opportunity, longer to the compiling hysteresis quality of key area; Simultaneously, scanning and record loop code need the labor time, and then influence instantaneity, efficient and user's result of use of the execution of JavaScript script.
Summary of the invention
The objective of the invention is defective, propose a kind of built-in browser engine on-the-flier compiler manner of execution to the background technology existence; With further shortening on-the-flier compiler and the time delay between carrying out, effectively improve synchronism and the efficient that built-in browser JavaScript engine on-the-flier compiler and JavaScript script move; Reach quick execution Javascript script; More the information that shown of new web page Javascript script is timely, and the purposes such as result of use of effectively improving the user.Thereby the instantaneity and the efficient that overcome the current web page page JavaScript script executing that the on-the-flier compiler of background technology built-in browser JavaScript engine exists are poor, and retardance is still longer, defectives such as user's result of use difference.
Solution of the present invention is in the JavaScript of background technology built-in browser engine, to adopt on the basis of on-the-flier compiler; Advance to engine and abstract syntax tree is converted in the process of bytecode the opportunity that will scan (detection) focus; Let like this engine to the processing of focus more early, more abundant; Also avoided the generation of the intermediate code of focus, and the focus direct compilation is become object code, practiced thrift the processing engines time; And the advantage that fully combines explanation execution and JIT to carry out; Promptly through ordinary node is compiled into bytecode, focus (loop structure) is compiled into object code; Engine then uses the former and explain to carry out, improving the response speed of script executing, the efficient that engine finds corresponding object code, carries out with effective raising focus through the redirect mark the latter; In the explanation implementation of engine, further survey the hot spot region beyond the loop structure simultaneously, and it is compiled into object code, to improve the execution efficient of hot spot region; In addition, with the big buffer zone of continuous storage (integral body) formula that background technology adopted, change into adopt a plurality of minibuffers district be combined into the big buffer area of logic, to realize the storage of redirect connection fast and object code, the expense of avoiding the mass data copy to be brought; The present invention promptly realizes its goal of the invention with this.Therefore, the inventive method comprises:
A. the foundation of combined type buffer zone and expansion thereof: adopt the mode in minibuffer district to store object code and bytecode, use the administrative mechanism of combined type buffer zone each minibuffer district to be combined to form a big buffer zone with logical relation through the redirect ways of connecting; When the expansion buffer zone, only needing on basis, existing minibuffer district, to increase one or more corresponding minibuffers district gets final product;
B. script focus and compiling abstract syntax tree, the compiling of scanning abstract syntax tree and bytecode, object code:
B 1. confirming of compiling abstract syntax tree and focus: after engine becomes abstract syntax tree by background technology (background technology conventional method) with the JavaScript script compile, the loop structure abstract syntax subtree in the abstract syntax tree as focus, is changeed step B 2
B 2. scanning abstract syntax tree: in abstract syntax tree is compiled into the process of bytecode, promptly the node to abstract syntax tree scans successively, to determine that it is ordinary node or focus, after having scanned a node, promptly changes steps A 3, until been scanned;
B 3. the compiling of bytecode, object code: to step B 2The focus of confirming when the ordinary node of confirming during the scanning abstract syntax tree is compiled into bytecode or the scanning of byte code stream then direct compilation becomes object code; Meanwhile between bytecode or byte code stream and the object code that is compiled into, insert the redirect mark, then its result is stored in the buffer zone;
C. definite, the compiling of script executing and hot spot region:
C 1. confirming of script executing and hot spot region: the bytecode that step B is compiled into and deposits in the steps A carries out the initialization tag and the execution of execution area; Judge in the implementation whether bytecode is the redirect mark; Directly explain execution if not the redirect mark; If the redirect mark then obtain the object code corresponding with this redirect mark after, carry out; In explaining implementation, the bytecode section of each execution is carried out zone marker, with carried out repeatedly in the implementation zone more than 2 times as the hot spot region, change step C 2, other zone is as non-hot spot region; Finish until script executing;
C 2. the compiling of hot spot region: judge at first whether the bytecode of forming the hot spot region contains the redirect mark, if step C 1The hot spot region that the bytecode by not containing the redirect mark that detects is formed, then directly bytecode is compiled into object code, if step C 1What detect is the hybrid hot spot region that formed by the bytecode that contains the redirect mark, then it is united is compiled into object code; Bytecode that each hot spot region that will detect simultaneously is corresponding or the bytecode that contains the redirect mark are revised as new redirect mark, change step C 1
Comprise object code buffer zone and bytecode buffer zone in the district of minibuffer described in the steps A.And at step C 2Described in the bytecode that contains the redirect mark is formed the Mixed Zone, be compiled into object code through uniting; Its method of uniting compiling is bytecode to be compiled in the process of object code at engine; In case find that the redirect mark is about to the corresponding object code of this redirect mark and is connected to after the current goal sign indicating number, continue the process of associating compiling again.
The present invention because in the JavaScript of built-in browser engine, adopted the on-the-flier compiler mode, the opportunity that will scan (detection) focus advances to engine and abstract syntax tree is converted in the process of bytecode; Allow engine to the processing of focus more early, more abundant; Also omitted the intermediate code of focus generation, the focus direct compilation is become object code, saved the processing engines time; Fully combine simultaneously and explain the fast and high advantage of JIT execution efficient of execution response speed; And in the explanation implementation of engine, further survey the focus beyond the loop structure, not only improved script executing response speed, but also effectively improved the execution efficient of focus and hot spot region; The present invention adopts the minibuffer district to be combined to form a big buffering area with logical relation simultaneously, replaces the big buffering area of continuous storage (integral body) formula that background technology adopted, not only made things convenient for buffering area capacity extension, but also the mass data of having avoided adopting the big buffering area institute of continuous storage mode to carry out copy the expense of bringing.Thereby; The present invention has the synchronism and the efficient that can effectively improve built-in browser JavaScript engine on-the-flier compiler and the operation of JavaScript script; Shortened on-the-flier compiler and carry out between time delay, to carry out the Javascript script quick, more the information that shown of new web page Javascript script in time, and effectively improved user's characteristics such as result of use.
Description of drawings
Fig. 1 is a specific embodiment of the invention schematic flow sheet.
Embodiment
This embodiment is an example with DTV STB processing scripts code: this case script code has comprised and has also comprised the event response processing in loop structure, the script, and the user can constantly trigger this event response.To specifically set forth processing method of the present invention to the processing of this instance according to built-in browser Javascript engine now.
Accompanying drawing 1 is this embodiment schematic flow sheet, and the on-the-flier compiler manner of execution of engine is following:
Steps A: at first set up the minibuffer district be used for bytecode and object code access, be bytecode buffer zone and object code buffer zone; Be used for preserving respectively and calling bytecode, object code, and realize management each minibuffer district object code redirect connection through the administrative mechanism of logical buffers;
Step B1:JavaScript script gets into the JavaScript engine through grammatical and semantic and lexical analysis, is compiled into abstract syntax tree, and the loop structure abstract syntax subtree in the abstract syntax tree is labeled as focus, changes step B then 2-1
Step B 2-1: the scanning abstract syntax tree, judge whether the node of current scanning is focus, if then change step B 3-2, otherwise change step B 3-1
Step B 3-1: after will compiling the bytecode or byte code stream and store byte sign indicating number or byte code stream of present node, change step B 2-2
Step B 2-2: judge whether been scanned of abstract syntax tree, if been scanned, change step C 1-1, otherwise change step B 2-1
Step B 3-2: focus is compiled into object code and stores this object code, change step B simultaneously 3-3
Step B 3-3: after adding the redirect mark that points to the focus object code after the byte code sequence of in steps A, having preserved, change step B 2-2
Step B 2-2: judge whether been scanned of abstract syntax tree, if been scanned, change step C 1-1, otherwise change step B 2-1
Step C 1-1: a bytecode in the byte code sequence of preserving among the extraction step A, if the corresponding zone of this bytecode is not labeled, then its zone marker is initialized as 0 time, change step C 1-2
Step C 1-2: judge whether current bytecode is the redirect mark, if, change step C 1-3, otherwise change step C 1-4
Step C 1-3: according to object code of preserving in the redirect marker extraction steps A and execution, carry out the end back and change step C 1-6:
Step C 1-4: to the bytecode execution that makes an explanation, add 1 on simultaneously that this bytecode is the corresponding former basis of zone marker, executing the back changes step C 1-5
Step C 1-5: judge whether current bytecode zone is performed (being that zone marker is more than or equal to 2) more than 2 times, if, change step C 2-1, otherwise change step C 1-6
Step C 1-6: judge whether the bytecode execution is accomplished, if accomplish, change step C 1-7Finish, otherwise change step C 1-1
Step C 2-1: judge whether the bytecode in the hot spot region contains the redirect mark, if contain, change step C 2-3, otherwise change step C 2-2
Step C 2-2: current hot spot region bytecode is compiled into object code, and stores this object code, change step C simultaneously 2-4
Step C 2-3: the bytecode in the current hot spot region of containing the redirect mark partly is compiled into object code, and with the hot spot region in the corresponding object code of redirect mark connect, and change step C 2-4
Step C 2-4: change bytecode in the current hot spot region or the bytecode that contains the redirect mark into new redirect mark, change step C 1-6Judge that whether the bytecode execution is accomplished, if accomplish, changes step C 1-7, otherwise change step C 1-1
Step C 1-7: script executing finishes.

Claims (3)

1. built-in browser engine on-the-flier compiler manner of execution comprises:
A. the foundation of combined type buffer zone and expansion thereof: adopt the mode in minibuffer district to store object code and bytecode, use the administrative mechanism of combined type buffer zone each minibuffer district to be combined to form a big buffer zone with logical relation through the redirect ways of connecting; When the expansion buffer zone, only need on basis, existing minibuffer district, to increase one or more corresponding minibuffers district;
B. script focus and compiling abstract syntax tree, the compiling of scanning abstract syntax tree and bytecode, object code:
B 1. confirming of compiling abstract syntax tree and focus: after engine becomes abstract syntax tree by background technology with the JavaScript script compile, the loop structure abstract syntax subtree in the abstract syntax tree as focus, is changeed step B 2
B 2. scanning abstract syntax tree: in abstract syntax tree is compiled into the process of bytecode, promptly the node to abstract syntax tree scans successively, to determine that it is ordinary node or focus, after having scanned a node, promptly changes steps A 3, until been scanned;
B 3. the compiling of bytecode, object code: to step B 2The focus of confirming when the ordinary node of confirming during the scanning abstract syntax tree is compiled into bytecode or the scanning of byte code stream then direct compilation becomes object code; Meanwhile between bytecode or byte code stream and the object code that is compiled into, insert the redirect mark, then its result is stored in the buffer zone;
C. definite, the compiling of script executing and hot spot region:
C 1. confirming of script executing and hot spot region: the bytecode that step B is compiled into and deposits in the steps A carries out the initialization tag and the execution of execution area; Judge in the implementation whether bytecode is the redirect mark; Directly explain execution if not the redirect mark; If the redirect mark then obtain the object code corresponding with this redirect mark after, carry out; In explaining implementation, the bytecode section of each execution is carried out zone marker, with carried out repeatedly in the implementation zone more than 2 times as the hot spot region, change step C 2, other zone is as non-hot spot region; Finish until script executing;
C 2. the compiling of hot spot region: judge at first whether the bytecode of forming the hot spot region contains the redirect mark, if step C 1The hot spot region that the bytecode by not containing the redirect mark that detects is formed, then directly bytecode is compiled into object code, if step C 1What detect is the hybrid hot spot region that formed by the bytecode that contains the redirect mark, then it is united is compiled into object code; Bytecode that each hot spot region that will detect simultaneously is corresponding or the bytecode that contains the redirect mark are revised as new redirect mark, change step C 1
2. by the said built-in browser engine of claim 1 on-the-flier compiler manner of execution, it is characterized in that the district of minibuffer described in the steps A comprises object code buffer zone and bytecode buffer zone.
3. by the said built-in browser engine of claim 1 on-the-flier compiler manner of execution, it is characterized in that at step C 2Described in the bytecode that contains the redirect mark is formed the Mixed Zone, be compiled into object code through uniting; Its method of uniting compiling is bytecode to be compiled in the process of object code at engine; In case find that the redirect mark is about to the corresponding object code of this redirect mark and is connected to after the current goal sign indicating number, continue the process of associating compiling again.
CN201210191993.6A 2012-06-12 2012-06-12 Dynamic compiling and executing method of embedded browser engine Expired - Fee Related CN102736943B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210191993.6A CN102736943B (en) 2012-06-12 2012-06-12 Dynamic compiling and executing method of embedded browser engine

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210191993.6A CN102736943B (en) 2012-06-12 2012-06-12 Dynamic compiling and executing method of embedded browser engine

Publications (2)

Publication Number Publication Date
CN102736943A true CN102736943A (en) 2012-10-17
CN102736943B CN102736943B (en) 2015-06-17

Family

ID=46992495

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210191993.6A Expired - Fee Related CN102736943B (en) 2012-06-12 2012-06-12 Dynamic compiling and executing method of embedded browser engine

Country Status (1)

Country Link
CN (1) CN102736943B (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103279373A (en) * 2013-05-31 2013-09-04 广州市动景计算机科技有限公司 Method and device for updating browser shell functions
CN103823694A (en) * 2014-02-10 2014-05-28 深圳市同洲电子股份有限公司 Method and device for updating script file
CN105589729A (en) * 2015-12-28 2016-05-18 北京锐安科技有限公司 Dynamic compiling method and device based on embedded virtual machine
CN105608346A (en) * 2015-12-25 2016-05-25 北京奇虎科技有限公司 ELF file protection method and system based on ARM instruction virtualization
CN110347399A (en) * 2019-05-31 2019-10-18 深圳绿米联创科技有限公司 Data processing method, real time computation system and information system
CN111176625A (en) * 2019-12-31 2020-05-19 杭州趣链科技有限公司 Method for efficiently compiling identity intelligent contract at browser end
CN116302221A (en) * 2023-03-27 2023-06-23 河南牧业经济学院 Function graph drawing method and system based on browser
CN117251553A (en) * 2023-11-15 2023-12-19 知学云(北京)科技股份有限公司 Intelligent learning interaction method based on custom plug-in and large language model

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101231597A (en) * 2008-02-01 2008-07-30 东信和平智能卡股份有限公司 Method for execution of JAVA program instruction in smart card
US7421687B1 (en) * 2003-10-08 2008-09-02 Sun Microsystems, Inc. Optimizing branch condition expressions in a JIT compiler
CN102202242A (en) * 2011-05-19 2011-09-28 广东星海数字家庭产业技术研究院有限公司 Realization method of JavaScript interpreter based on set-top box browser

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7421687B1 (en) * 2003-10-08 2008-09-02 Sun Microsystems, Inc. Optimizing branch condition expressions in a JIT compiler
CN101231597A (en) * 2008-02-01 2008-07-30 东信和平智能卡股份有限公司 Method for execution of JAVA program instruction in smart card
CN102202242A (en) * 2011-05-19 2011-09-28 广东星海数字家庭产业技术研究院有限公司 Realization method of JavaScript interpreter based on set-top box browser

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CHRISTIAN HAUBL ET AL.: "《ACM Proceedings of the 9th International Conference on Principles and Practice of Programming in Java 》", 31 December 2011, 2011 ACM ISBN 978-1-4503-0935-6 *
曾亮: "嵌入式浏览器Javascript引擎的分析与优化", 《中国优秀硕士学位论文全文数据库(电子期刊)信息科技辑》 *
朱晓珺 等: "C/C++程序的运行时优化研究", 《软件导刊》 *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103279373B (en) * 2013-05-31 2017-09-22 广州市动景计算机科技有限公司 The update method and device of browser case function
CN103279373A (en) * 2013-05-31 2013-09-04 广州市动景计算机科技有限公司 Method and device for updating browser shell functions
CN103823694A (en) * 2014-02-10 2014-05-28 深圳市同洲电子股份有限公司 Method and device for updating script file
CN105608346A (en) * 2015-12-25 2016-05-25 北京奇虎科技有限公司 ELF file protection method and system based on ARM instruction virtualization
CN105589729A (en) * 2015-12-28 2016-05-18 北京锐安科技有限公司 Dynamic compiling method and device based on embedded virtual machine
CN110347399B (en) * 2019-05-31 2023-06-06 深圳绿米联创科技有限公司 Data processing method, real-time computing system and information system
CN110347399A (en) * 2019-05-31 2019-10-18 深圳绿米联创科技有限公司 Data processing method, real time computation system and information system
CN111176625A (en) * 2019-12-31 2020-05-19 杭州趣链科技有限公司 Method for efficiently compiling identity intelligent contract at browser end
CN111176625B (en) * 2019-12-31 2023-07-28 杭州趣链科技有限公司 Method for efficiently compiling intelligent contract of solubility at browser end
CN116302221A (en) * 2023-03-27 2023-06-23 河南牧业经济学院 Function graph drawing method and system based on browser
CN116302221B (en) * 2023-03-27 2023-10-10 河南牧业经济学院 Function graph drawing method and system based on browser
CN117251553A (en) * 2023-11-15 2023-12-19 知学云(北京)科技股份有限公司 Intelligent learning interaction method based on custom plug-in and large language model
CN117251553B (en) * 2023-11-15 2024-02-27 知学云(北京)科技股份有限公司 Intelligent learning interaction method based on custom plug-in and large language model

Also Published As

Publication number Publication date
CN102736943B (en) 2015-06-17

Similar Documents

Publication Publication Date Title
CN102736943A (en) Dynamic compiling and executing method of embedded browser engine
US8819649B2 (en) Profile guided just-in-time (JIT) compiler and byte code generation
US7784039B2 (en) Compiler, compilation method, and compilation program
CN101984429B (en) Method and device for acquiring destination page, search engine and browser
KR20200043467A (en) Method and terminal device for extracting web page content
CN102483700B (en) Lightweight service based on dynamic binary rewriter framework
CN103282890B (en) Program executing apparatus and compiler system
CN106021257A (en) Method, device, and system for crawler to capture data supporting online programming
CN102360334A (en) Dynamic and static combined software security test method
CN107450928B (en) Hybrid development method based on cache technology
CN103412754A (en) Dynamic language code execution method and device
CN102830975A (en) Method and device for code conversion from assembly language to high-level language
CN101271398B (en) Recognition method of multi-path branch structure
Miranda et al. A partial read barrier for efficient support of live object-oriented programming
CN105022667B (en) One kind being based on built-in browser CSS engine parallel methods
CN105094941A (en) Method and device for achieving multiple languages
CN106020920A (en) Preprocessing method and system for JCVM interpreter
CN105938496A (en) Webpage content extraction method and apparatus
CN104881274A (en) Method for identifying useless codes
CN107547944A (en) Interface realizing method and device, set top box
CN105786465A (en) Scripting language execution method and device
CN102354318B (en) Device and method for reducing ad hoc query languages in database system
CN104504070B (en) A kind of method and apparatus of search
CN1332308C (en) Translation method in dynamic binary translation
Kim et al. Small footprint JavaScript engine

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150617

Termination date: 20180612