Explorar el Código

switch to streaming WASM loading, fixes #814

El RIDO hace 5 años
padre
commit
a4a32f6b9e
Se han modificado 3 ficheros con 26 adiciones y 35 borrados
  1. 24 33
      js/zlib-1.2.11.js
  2. 1 1
      tpl/bootstrap.php
  3. 1 1
      tpl/page.php

+ 24 - 33
js/zlib-1.2.11.js

@@ -1,6 +1,6 @@
 'use strict';
 'use strict';
 
 
-(function() {
+(function () {
     let ret;
     let ret;
 
 
     async function initialize() {
     async function initialize() {
@@ -23,16 +23,7 @@
             _abort: errno => { console.error(`Error: ${errno}`) },
             _abort: errno => { console.error(`Error: ${errno}`) },
             _grow: () => { },
             _grow: () => { },
         };
         };
-
-        let buff;
-        if (typeof fetch === 'undefined') {
-            buff = fs.readFileSync('zlib-1.2.11.wasm');
-        } else {
-            const resp = await fetch('js/zlib-1.2.11.wasm');
-            buff = await resp.arrayBuffer();
-        }
-        const module = await WebAssembly.compile(buff);
-        const ins = await WebAssembly.instantiate(module, { env });
+        const ins = await WebAssembly.instantiateStreaming(fetch('js/zlib-1.2.11.wasm'), { env });
 
 
         const srcPtr = ins.exports._malloc(CHUNK_SIZE);
         const srcPtr = ins.exports._malloc(CHUNK_SIZE);
         const dstPtr = ins.exports._malloc(CHUNK_SIZE);
         const dstPtr = ins.exports._malloc(CHUNK_SIZE);
@@ -116,28 +107,28 @@
         }
         }
 
 
         ret = {
         ret = {
-                inflate(rawDeflateBuffer) {
-                    const rawInf = new RawInf();
-                    for (let offset = 0; offset < rawDeflateBuffer.length; offset += CHUNK_SIZE) {
-                        const end = Math.min(offset + CHUNK_SIZE, rawDeflateBuffer.length);
-                        const chunk = rawDeflateBuffer.subarray(offset, end);
-                        rawInf.inflate(chunk);
-                    }
-                    const ret = rawInf.getBuffer();
-                    rawInf.destroy();
-                    return ret;
-                },
-                deflate(rawInflateBuffer) {
-                    const rawDef = new RawDef();
-                    for (let offset = 0; offset < rawInflateBuffer.length; offset += CHUNK_SIZE) {
-                        const end = Math.min(offset + CHUNK_SIZE, rawInflateBuffer.length);
-                        const chunk = rawInflateBuffer.subarray(offset, end);
-                        rawDef.deflate(chunk, rawInflateBuffer.length <= offset + CHUNK_SIZE);
-                    }
-                    const ret = rawDef.getBuffer();
-                    rawDef.destroy();
-                    return ret;
-                },
+            inflate(rawDeflateBuffer) {
+                const rawInf = new RawInf();
+                for (let offset = 0; offset < rawDeflateBuffer.length; offset += CHUNK_SIZE) {
+                    const end = Math.min(offset + CHUNK_SIZE, rawDeflateBuffer.length);
+                    const chunk = rawDeflateBuffer.subarray(offset, end);
+                    rawInf.inflate(chunk);
+                }
+                const ret = rawInf.getBuffer();
+                rawInf.destroy();
+                return ret;
+            },
+            deflate(rawInflateBuffer) {
+                const rawDef = new RawDef();
+                for (let offset = 0; offset < rawInflateBuffer.length; offset += CHUNK_SIZE) {
+                    const end = Math.min(offset + CHUNK_SIZE, rawInflateBuffer.length);
+                    const chunk = rawInflateBuffer.subarray(offset, end);
+                    rawDef.deflate(chunk, rawInflateBuffer.length <= offset + CHUNK_SIZE);
+                }
+                const ret = rawDef.getBuffer();
+                rawDef.destroy();
+                return ret;
+            },
         }
         }
 
 
         return ret;
         return ret;

+ 1 - 1
tpl/bootstrap.php

@@ -54,7 +54,7 @@ if ($ZEROBINCOMPATIBILITY) :
 <?php
 <?php
 endif;
 endif;
 ?>
 ?>
-		<script type="text/javascript" data-cfasync="false" src="js/zlib-1.2.11.js" integrity="sha512-Yey/0yoaVmSbqMEyyff3DIu8kCPwpHvHf7tY1AuZ1lrX9NPCMg87PwzngMi+VNbe4ilCApmePeuKT869RTcyCQ==" crossorigin="anonymous"></script>
+		<script type="text/javascript" data-cfasync="false" src="js/zlib-1.2.11.js" integrity="sha512-Ji/WNgLpfd+sJgYjJv67Tjs4aYeMVrMeYIgCp5VU+EB8INzpfilh0ptjBHa3xem8tLCMROgJR10ilK3saci2YA==" crossorigin="anonymous"></script>
 		<script type="text/javascript" data-cfasync="false" src="js/base-x-3.0.7.js" integrity="sha512-/Bi1AJIP0TtxEB+Jh6Hk809H1G7vn4iJV80qagslf0+Hm0UjUi1s3qNrn1kZULjzUYuaf6ck0ndLGJ7MxWLmgQ==" crossorigin="anonymous"></script>
 		<script type="text/javascript" data-cfasync="false" src="js/base-x-3.0.7.js" integrity="sha512-/Bi1AJIP0TtxEB+Jh6Hk809H1G7vn4iJV80qagslf0+Hm0UjUi1s3qNrn1kZULjzUYuaf6ck0ndLGJ7MxWLmgQ==" crossorigin="anonymous"></script>
 		<script type="text/javascript" data-cfasync="false" src="js/rawinflate-0.3.js" integrity="sha512-g8uelGgJW9A/Z1tB6Izxab++oj5kdD7B4qC7DHwZkB6DGMXKyzx7v5mvap2HXueI2IIn08YlRYM56jwWdm2ucQ==" crossorigin="anonymous"></script>
 		<script type="text/javascript" data-cfasync="false" src="js/rawinflate-0.3.js" integrity="sha512-g8uelGgJW9A/Z1tB6Izxab++oj5kdD7B4qC7DHwZkB6DGMXKyzx7v5mvap2HXueI2IIn08YlRYM56jwWdm2ucQ==" crossorigin="anonymous"></script>
 		<script type="text/javascript" data-cfasync="false" src="js/bootstrap-3.3.7.js" integrity="sha512-iztkobsvnjKfAtTNdHkGVjAYTrrtlC7mGp/54c40wowO7LhURYl3gVzzcEqGl/qKXQltJ2HwMrdLcNUdo+N/RQ==" crossorigin="anonymous"></script>
 		<script type="text/javascript" data-cfasync="false" src="js/bootstrap-3.3.7.js" integrity="sha512-iztkobsvnjKfAtTNdHkGVjAYTrrtlC7mGp/54c40wowO7LhURYl3gVzzcEqGl/qKXQltJ2HwMrdLcNUdo+N/RQ==" crossorigin="anonymous"></script>

+ 1 - 1
tpl/page.php

@@ -33,7 +33,7 @@ if ($ZEROBINCOMPATIBILITY):
 <?php
 <?php
 endif;
 endif;
 ?>
 ?>
-		<script type="text/javascript" data-cfasync="false" src="js/zlib-1.2.11.js" integrity="sha512-Yey/0yoaVmSbqMEyyff3DIu8kCPwpHvHf7tY1AuZ1lrX9NPCMg87PwzngMi+VNbe4ilCApmePeuKT869RTcyCQ==" crossorigin="anonymous"></script>
+		<script type="text/javascript" data-cfasync="false" src="js/zlib-1.2.11.js" integrity="sha512-Ji/WNgLpfd+sJgYjJv67Tjs4aYeMVrMeYIgCp5VU+EB8INzpfilh0ptjBHa3xem8tLCMROgJR10ilK3saci2YA==" crossorigin="anonymous"></script>
 		<script type="text/javascript" data-cfasync="false" src="js/base-x-3.0.7.js" integrity="sha512-/Bi1AJIP0TtxEB+Jh6Hk809H1G7vn4iJV80qagslf0+Hm0UjUi1s3qNrn1kZULjzUYuaf6ck0ndLGJ7MxWLmgQ==" crossorigin="anonymous"></script>
 		<script type="text/javascript" data-cfasync="false" src="js/base-x-3.0.7.js" integrity="sha512-/Bi1AJIP0TtxEB+Jh6Hk809H1G7vn4iJV80qagslf0+Hm0UjUi1s3qNrn1kZULjzUYuaf6ck0ndLGJ7MxWLmgQ==" crossorigin="anonymous"></script>
 		<script type="text/javascript" data-cfasync="false" src="js/rawinflate-0.3.js" integrity="sha512-g8uelGgJW9A/Z1tB6Izxab++oj5kdD7B4qC7DHwZkB6DGMXKyzx7v5mvap2HXueI2IIn08YlRYM56jwWdm2ucQ==" crossorigin="anonymous"></script>
 		<script type="text/javascript" data-cfasync="false" src="js/rawinflate-0.3.js" integrity="sha512-g8uelGgJW9A/Z1tB6Izxab++oj5kdD7B4qC7DHwZkB6DGMXKyzx7v5mvap2HXueI2IIn08YlRYM56jwWdm2ucQ==" crossorigin="anonymous"></script>
 <?php
 <?php