]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Internal cleanups in the async part of the JS library bootstrap phase.
authorstephan <stephan@noemail.net>
Fri, 21 Jul 2023 09:10:42 +0000 (09:10 +0000)
committerstephan <stephan@noemail.net>
Fri, 21 Jul 2023 09:10:42 +0000 (09:10 +0000)
FossilOrigin-Name: b6d57ab63793241a500ea527c5b3216c54b3ff1972d3adbbf42a9a53bfec0aa1

ext/wasm/api/sqlite3-api-prologue.js
manifest
manifest.uuid

index f2d568e2eaa591829b47e97860a6c32be652b37d..0179091c0246a1b7436bedba4e38530228ef7f72 100644 (file)
@@ -1889,19 +1889,9 @@ globalThis.sqlite3ApiBootstrap = function sqlite3ApiBootstrap(
     */
     asyncPostInit: async function ff(){
       if(ff.isReady instanceof Promise) return ff.isReady;
-      let lip = sqlite3ApiBootstrap.initializersAsync;
+      let lia = sqlite3ApiBootstrap.initializersAsync;
       delete sqlite3ApiBootstrap.initializersAsync;
-      if(!lip || !lip.length){
-        return ff.isReady = Promise.resolve(sqlite3);
-      }
-      lip = lip.map((f)=>{
-        return (f instanceof Function) ? async x=>f(sqlite3) : f;
-      });
-      const catcher = (e)=>{
-        config.error("an async sqlite3 initializer failed:",e);
-        throw e;
-      };
-      const postInit = ()=>{
+      const postInit = async ()=>{
         if(!sqlite3.__isUnderTest){
           /* Delete references to internal-only APIs which are used by
              some initializers. Retain them when running in test mode
@@ -1915,18 +1905,20 @@ globalThis.sqlite3ApiBootstrap = function sqlite3ApiBootstrap(
         }
         return sqlite3;
       };
-      if(1){
-        /* Run all initializers in the sequence they were added. The
-           advantage is that it allows us to have post-init cleanup
-           defined outside of this routine at the end of the list and
-           have it run at a well-defined time. */
-        let p = Promise.resolve(sqlite3);
-        while(lip.length) p = p.then(lip.shift());
-        return ff.isReady = p.then(postInit).catch(catcher);
-      }else{
-        /* Run them in an arbitrary order. */
-        return ff.isReady = Promise.all(lip).then(postInit).catch(catcher);
+      const catcher = (e)=>{
+        config.error("an async sqlite3 initializer failed:",e);
+        throw e;
+      };
+      if(!lia || !lia.length){
+        return ff.isReady = postInit().catch(catcher);
       }
+      lia = lia.map((f)=>{
+        return (f instanceof Function) ? async x=>f(sqlite3) : f;
+      });
+      lia.push(postInit);
+      let p = Promise.resolve(sqlite3);
+      while(lia.length) p = p.then(lia.shift());
+      return ff.isReady = p.catch(catcher);
     },
     /**
        scriptInfo ideally gets injected into this object by the
index fbde0f5ec583551a1ddf7af118185ac2ae0889d9..2ae10ae23991c5622dc496095c8c92e9b5136d51 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Minor\sinternal\scleanups\sin\sJS\scode.
-D 2023-07-20T23:25:32.031
+C Internal\scleanups\sin\sthe\sasync\spart\sof\sthe\sJS\slibrary\sbootstrap\sphase.
+D 2023-07-21T09:10:42.614
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -497,7 +497,7 @@ F ext/wasm/api/pre-js.c-pp.js ad906703f7429590f2fbf5e6498513bf727a1a4f0ebfa057af
 F ext/wasm/api/sqlite3-api-cleanup.js 23ceec5ef74a0e649b19694ca985fd89e335771e21f24f50df352a626a8c81bf
 F ext/wasm/api/sqlite3-api-glue.js f1b2dcb944de5138bb5bd9a1559d2e76a4f3ec25260963d709e8237476688803
 F ext/wasm/api/sqlite3-api-oo1.js 9678dc4d9a5d39632b6ffe6ea94a023119260815bf32f265bf5f6c36c9516db8
-F ext/wasm/api/sqlite3-api-prologue.js fdd8b72323f09684a7addfb622d427477a58cd5a35523f150ce77236b56352a7
+F ext/wasm/api/sqlite3-api-prologue.js cbd7d6ba185f3a844a8b0020e954b49bbc2ca78b305d117bec2ceca21431795a
 F ext/wasm/api/sqlite3-api-worker1.js 9f32af64df1a031071912eea7a201557fe39b1738645c0134562bb84e88e2fec
 F ext/wasm/api/sqlite3-license-version-header.js 0c807a421f0187e778dc1078f10d2994b915123c1223fe752b60afdcd1263f89
 F ext/wasm/api/sqlite3-opfs-async-proxy.js 8cf8a897726f14071fae6be6648125162b256dfb4f96555b865dbb7a6b65e379
@@ -2044,8 +2044,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 080a4d0aba30d8f3802b49be4a113205f069b3bdea8cebf525d654055642ff62
-R 729d5d7f424013b7282496b5ada001e8
+P 21a2ca9fc46bf746874579897872e2a45cb07f278abb670dd22b122f7d6a9a6c
+R 29a8f4f8ea37e0c15f874df4805828de
 U stephan
-Z fa107c664214632c0e2de6d34ddd182b
+Z 8b913efdb9ce5e9239da5b5f12183785
 # Remove this line to create a well-formed Fossil manifest.
index d513af32a77fb5e96ce8beaba72afea9894e8016..d10306e8a0782188af8f217f682edd98ac7254b6 100644 (file)
@@ -1 +1 @@
-21a2ca9fc46bf746874579897872e2a45cb07f278abb670dd22b122f7d6a9a6c
\ No newline at end of file
+b6d57ab63793241a500ea527c5b3216c54b3ff1972d3adbbf42a9a53bfec0aa1
\ No newline at end of file