Rust编写的JavaScript引擎,该项目是一个试验性质的项目。
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

3 lines
12 KiB

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="683px" height="293px" viewBox="-0.5 -0.5 683 293" content="&lt;mxfile host=&quot;app.diagrams.net&quot; modified=&quot;2021-01-24T17:55:51.427Z&quot; agent=&quot;5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36&quot; etag=&quot;JZaqgZUxKU13g8yBdDku&quot; version=&quot;13.4.6&quot; type=&quot;device&quot;&gt;&lt;diagram id=&quot;C5RBs43oDa-KdzZeNtuy&quot; name=&quot;Page-1&quot;&gt;7VnbdqIwFP0aHzuLi6A+equ9zmrHts48ZuAItJEwIajM10+QcI211l5snbp8IJtDQvY++3DEht6fLUcUBe4lsQE3NMVeNvRBQ9NUVdMayVex4xRpK80UcKhni6ACGHt/QYCKQCPPhrASyAjBzAuqoEV8HyxWwRClZFENmxJcXTVADkjA2EJYRieezVyxC61V4CfgOW62smp20jMzlAWLnYQussmiBOnDht6nhLD0aLbsA07Iy3iZnMYTfPFgjs6uwz/otnd+8/3uKJ3s+DmX5Fug4LOdp74+Z3B75umTU/16NDkZ3lt3/pHQMmRxxhfYnD4xJJS5xCE+wsMC7VES+TYksyp8VMRcEBJwUOXgPTAWi1xAESMcctkMi7PpmslCNYme2J+IC0lELdgQp4s0Q9QBtmHzWi4iz34gM2A05tdRwIh58+rNIZGGTh5XUM0PBNvPEFXc5BzhSKx0huZobFEvYBwfp5vUTDTjpPb832GQM1dSq9AiIXbhegzGAVqxs+B+rvI+JT4Toqh84z0HozAUMoaMkofcIUl0nu5KvvC2Cs2BMliW+JNJFmc7wluiuOi6GC8Kq2YhbsmlpvJyVdamhPnJ/fB4nm/hB+Od/LDpJkt+uIAl0D1nvJTJ28ryaMbnj5MNKd9+z5TvSMQfogeMLT3Q2qcHDEmKK0TDAzSBrjc/lgmybvXAXdDa0gXtfbpA7eyDek4wjX+K61eDX8ngm5ENB8vyyUFcscj+JVNfqtnq0i6lKC4FBMTzWVia+SoBCiM329WnWTYu9E9nLLIhv7XdE6QlebU7vjm4GtlsfrBGoS3RPlyCFTGP+AdHvml+MPJVuT+Wq6Rvd5M3JnzkEz+pijYK3VyFEuMJfoUYA+qvEE3RJa61lxY3mdwSecYa8jLseSVLqkn1kqTVNElLrrio/MKkNk/LfGKitCZLE71WmVPlVwRfkm8ludZ6Jcmlid5aclOSfABTFOHkHn9Ecp3lZY9VdU4V7RNMaJEUUw/jGoSw5ySZgGGazJCUUM9CuCvgmWfbq8ZqXe2uNltvVYProrblEqzqa3KqbtPXq8Fy43F3ycdTQCyiwI+OMXL+Z42aurpnjbJ9HdbvNlX0Xk+/0lbWy/VOv9zkFnEEPlDEEnP0YgYWsUES6LM3i4ZRc4Gx52Yxc1dJh1OfP/kDCuyQhah37fsX4qtr37GFM+qaPKOF+6aUPtrmaXdu6Piw+Os3DS/+QNeH/wA=&lt;/diagram&gt;&lt;/mxfile&gt;" style="background-color: rgb(255, 255, 255);"><defs/><g><path d="M 101 91 L 134.63 91" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 139.88 91 L 132.88 94.5 L 134.63 91 L 132.88 87.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="11" y="61" width="90" height="60" rx="9" ry="9" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 91px; margin-left: 12px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">JavaScript Source </div></div></div></foreignObject><text x="56" y="95" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">JavaScript Sour...</text></switch></g><path d="M 221 91 L 241 91 L 235 91 L 248.63 91" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 253.88 91 L 246.88 94.5 L 248.63 91 L 246.88 87.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="141" y="61" width="80" height="60" rx="9" ry="9" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 91px; margin-left: 142px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Lexer</div></div></div></foreignObject><text x="181" y="95" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Lexer</text></switch></g><path d="M 335 91 L 355 91 L 341 91 L 354.63 91" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 359.88 91 L 352.88 94.5 L 354.63 91 L 352.88 87.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="255" y="61" width="80" height="60" rx="9" ry="9" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 91px; margin-left: 256px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Parser</div></div></div></foreignObject><text x="295" y="95" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Parser</text></switch></g><path d="M 441 91 L 574.63 91" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 579.88 91 L 572.88 94.5 L 574.63 91 L 572.88 87.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 401 121 L 401 211 L 464.63 211" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 469.88 211 L 462.88 214.5 L 464.63 211 L 462.88 207.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="361" y="61" width="80" height="60" rx="9" ry="9" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 91px; margin-left: 362px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">AST</div></div></div></foreignObject><text x="401" y="95" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">AST</text></switch></g><rect x="581" y="61" width="80" height="60" rx="9" ry="9" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 91px; margin-left: 582px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Execution</div></div></div></foreignObject><text x="621" y="95" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Execution</text></switch></g><path d="M 1 151 L 681 151" fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 6" pointer-events="stroke"/><path d="M 1 1 L 681 1" fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 6" pointer-events="stroke"/><rect x="1" y="11" width="130" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 128px; height: 1px; padding-top: 21px; margin-left: 3px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Default Run</div></div></div></foreignObject><text x="3" y="25" fill="#000000" font-family="Helvetica" font-size="12px">Default Run</text></switch></g><rect x="1" y="162" width="130" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 128px; height: 1px; padding-top: 172px; margin-left: 3px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">VM feature Flag</div></div></div></foreignObject><text x="3" y="176" fill="#000000" font-family="Helvetica" font-size="12px">VM feature Flag</text></switch></g><path d="M 551 211 L 571 211 L 561 211 L 574.63 211" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 579.88 211 L 572.88 214.5 L 574.63 211 L 572.88 207.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="471" y="181" width="80" height="60" rx="9" ry="9" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 211px; margin-left: 472px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Generate Bytecode</div></div></div></foreignObject><text x="511" y="215" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Generate Byte...</text></switch></g><rect x="581" y="181" width="80" height="60" rx="9" ry="9" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 211px; margin-left: 582px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Interpret Bytecode</div></div></div></foreignObject><text x="621" y="215" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Interpret Byt...</text></switch></g><path d="M 1 291 L 681 291" fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 6" pointer-events="stroke"/></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://desk.draw.io/support/solutions/articles/16000042487" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Viewer does not support full SVG 1.1</text></a></switch></svg>