]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Add JS bundler-friendly JS build. Minor test code cleanups.
authorstephan <stephan@noemail.net>
Sat, 28 Jan 2023 04:20:46 +0000 (04:20 +0000)
committerstephan <stephan@noemail.net>
Sat, 28 Jan 2023 04:20:46 +0000 (04:20 +0000)
FossilOrigin-Name: 24d3a53dea5e596230558e233cbbd9d0288b4c394cd5ea7b650fd99bff4cde2e

1  2 
ext/wasm/GNUmakefile
ext/wasm/api/extern-post-js.c-pp.js
ext/wasm/api/pre-js.c-pp.js
ext/wasm/api/sqlite3-vfs-opfs.c-pp.js
ext/wasm/tester1-worker.html
ext/wasm/tester1.c-pp.html
ext/wasm/tester1.c-pp.js
manifest
manifest.uuid

index eef6902d62141ce0b11f25b35f350bbf1b22a2c1,143ee8b9f192f3b0939638749011a7a1e46c9484..78e34eb192ffb091193af8bddf6f0268869d4b8f
@@@ -57,6 -66,6 +66,13 @@@ ifeq (,$(emcc.version)
  else
    $(info using emcc version [$(emcc.version)])
  endif
++emcc.version := $(shell "$(emcc.bin)" --version | sed -n 1p \
++                  | sed -e 's/^.* \([3-9][^ ]*\) .*$$/\1/;')
++ifeq (,$(emcc.version))
++  $(warning Cannot determine emcc version. This might unduly impact build flags.)
++else
++  $(info using emcc version [$(emcc.version)])
++endif
  
  wasm-strip ?= $(shell which wasm-strip 2>/dev/null)
  ifeq (,$(filter clean,$(MAKECMDGOALS)))
@@@ -233,8 -242,9 +249,17 @@@ $(2): $(1) $$(MAKEFILE) $$(bin.c-pp
        $$(bin.c-pp) -f $(1) -o $$@ $(3)
  CLEAN_FILES += $(2)
  endef
--c-pp.D.vanilla ?=
--c-pp.D.esm ?= -Dtarget=es6-module
 -c-pp.D.bundler-friendly ?= -Dtarget=es6-module -Dtarget=es6-bundler-friendly
++c-pp.D.vanilla :=
++c-pp.D.esm := -Dtarget=es6-module
++c-pp.D.bundler-friendly := $(c-pp.D.esm) -Dtarget=es6-bundler-friendly
++# The various -D... values used by the sources include:
++#
++# -Dtarget=es6-module: intended for plain ESM module build.
++#
++# -Dtarget=es6-module -Dtarget=es6-bundler-friendly: intended for
++#    "bundler-friendly" ESM module build. These have some restrictions
++#    on how URL() objects are constructed in some contexts.
++#
  # /end C-PP.FILTER
  ########################################################################
  
index 2258697944c0b095f7128f1ef714014cca2bc07a,691ad76858337ca174fb15315a5f14b7d9562fdc..a577a63e1e3bb2e0a9c94b95a6274b7f887b3807
@@@ -9,7 -9,7 +9,7 @@@
     Emscripten-generated module init scope, in the current
     global scope. */
  //#if target=es6-module
--const toExportForES6 =
++const toExportForESM =
  //#endif
  (function(){
    /**
      moduleScript: self?.document?.currentScript,
      isWorker: ('undefined' !== typeof WorkerGlobalScope),
      location: self.location,
-     urlParams: new URL(self.location.href).searchParams
 -    urlParams:
 -//#if target=es6-bundler-friendly
 -    undefined
 -//#else
 -    new URL(self.location.href).searchParams
 -//#endif
++    urlParams:  new URL(self.location.href).searchParams
    });
    initModuleState.debugModule =
-     (new URL(self.location.href).searchParams).has('sqlite3.debugModule')
 -//#if target=es6-bundler-friendly
 -  ()=>{}
 -//#else
 -  (new URL(self.location.href).searchParams).has('sqlite3.debugModule')
++    initModuleState.urlParams.has('sqlite3.debugModule')
      ? (...args)=>console.warn('sqlite3.debugModule:',...args)
      : ()=>{};
 -//#endif
  
 -  if(initModuleState.urlParams && initModuleState.urlParams.has('sqlite3.dir')){
 +  if(initModuleState.urlParams.has('sqlite3.dir')){
      initModuleState.sqlite3Dir = initModuleState.urlParams.get('sqlite3.dir') +'/';
    }else if(initModuleState.moduleScript){
      const li = initModuleState.moduleScript.src.split('/');
                     document?.currentScript?.src);
      }
    }
 -// build and including them here breaks JS bundlers, so elide them
 -// from ES6 builds.
+ //#ifnot target=es6-module
+ // Emscripten does not inject these module-loader bits in ES6 module
++// builds and including them here breaks JS bundlers, so elide them
++// from ESM builds.
    /* Replace the various module exports performed by the Emscripten
       glue... */
    if (typeof exports === 'object' && typeof module === 'object'){
    return self.sqlite3InitModule /* required for ESM */;
  })();
  //#if target=es6-module
--export default toExportForES6;
++export default toExportForESM;
  //#endif
index 5d8e58864ba9ede867f46b49d044bfc6bd1396a4,c27c2fe0dc9803316b0d39700443773093a644a3..a25c7ce774db4d3c078a437e1daf3e537dac716e
@@@ -53,8 -55,9 +55,9 @@@ Module['locateFile'] = function(path, p
      "result =", theFile
    );
    return theFile;
- //#endif /* SQLITE_JS_EMS */
 -//#endif //target=es6-module
++//#endif target=es6-module
  }.bind(sqlite3InitModuleState);
 -//#endif //ifnot target=es6-bundler-friendly
++//#endif ifnot target=es6-bundler-friendly
  
  /**
     Bug warning: a custom Module.instantiateWasm() does not work
Simple merge
index a9c12d72c53c5c0756125ebf7996c34eb3c30de1,a9c12d72c53c5c0756125ebf7996c34eb3c30de1..03e1f02b02c45b5839eaea80977c0e8db4db300e
    </head>
    <body>
      <h1 id='color-target'>sqlite3 tester #1: Worker thread</h1>
--    <div>See <a href='tester1.html' target='tester1.html'>tester1.html</a>
--      for the UI-thread variant.</div>
++    <div>Variants:
++      <a href='tester1.html' target='tester1.html'>conventional UI thread</a>,
++      <a href='tester1-worker.html' target='tester1-worker.html'>conventional worker</a>,
++      <a href='tester1-esm.html' target='tester1-esm.html'>ESM in UI thread</a>,
++      <a href='tester1-worker.html?esm' target='tester1-worker.html?esm'>ESM worker</a>
++    </div>
      <div class='input-wrapper'>
        <input type='checkbox' id='cb-log-reverse'>
        <label for='cb-log-reverse'>Reverse log order?</label>
index 535e58962d5e3f3652ffed65aa7bfea7337948d5,535e58962d5e3f3652ffed65aa7bfea7337948d5..bbdd8b2233058530cbb9884f97ccb91e6d957c5e
@@@ -16,8 -16,8 +16,12 @@@ UI threa
      <style></style>
    </head>
    <body><h1 id='color-target'></h1>
--    <div>See <a href='tester1-worker.html' target='tester1-worker.html'>tester1-worker.html</a>
--      for the Worker-thread variant.</div>
++    <div>Variants:
++      <a href='tester1.html' target='tester1.html'>conventional UI thread</a>,
++      <a href='tester1-worker.html' target='tester1-worker.html'>conventional worker</a>,
++      <a href='tester1-esm.html' target='tester1-esm.html'>ESM in UI thread</a>,
++      <a href='tester1-worker.html?esm' target='tester1-worker.html?esm'>ESM worker</a>
++    </div>
      <div class='input-wrapper'>
        <input type='checkbox' id='cb-log-reverse'>
        <label for='cb-log-reverse'>Reverse log order?</label>
index 7f5de5166c10a6463ec3c8b257b7fb42f8e55e25,7f5de5166c10a6463ec3c8b257b7fb42f8e55e25..dca5331370bed9062e724b020182f28391935c7a
@@@ -1192,13 -1192,13 +1192,13 @@@ self.sqlite3InitModule = sqlite3InitMod
          rc = capi.sqlite3_db_status(this.db, capi.SQLITE_DBSTATUS_LOOKASIDE_USED,
                                      pCur, pHi, 0);
          T.assert(0===rc);
--        if(wasm.peek32(pCur)){
--          warn("Cannot test db_config(SQLITE_DBCONFIG_LOOKASIDE)",
--               "while lookaside memory is in use.");
--        }else{
++        if(!wasm.peek32(pCur)){
            rc = capi.sqlite3_db_config(this.db, capi.SQLITE_DBCONFIG_LOOKASIDE,
                                        0, 4096, 12);
            T.assert(0 === rc);
++        }else{
++          console.debug("Cannot test db_config(SQLITE_DBCONFIG_LOOKASIDE)",
++                        "while lookaside memory is in use.");
          }
          wasm.poke32([pCur, pHi], 0);
          let [vCur, vHi] = wasm.peek32(pCur, pHi);
diff --cc manifest
index 4b7e12a3aa7233f463b521a7dffb9bed4fc6408b,83354687522bd0e865fb9c2072b7a14179ace167..5c62a39f761f46284aee78e2bdc55f4e5810377c
+++ b/manifest
@@@ -1,5 -1,5 +1,5 @@@
- C Fix\scompiler\swarning\sin\sbase85.c.
- D 2023-01-27T23:10:10.479
 -C Update\sext/wasm/README-dist.txt\sfor\sthe\sbundler-friendly\sbuild.
 -D 2023-01-27T20:25:39.859
++C Add\sJS\sbundler-friendly\sJS\sbuild.\sMinor\stest\scode\scleanups.
++D 2023-01-28T04:20:46.205
  F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
  F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
  F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@@ -466,33 -466,33 +466,33 @@@ F ext/userauth/sqlite3userauth.h 7f3ea8
  F ext/userauth/user-auth.txt e6641021a9210364665fe625d067617d03f27b04
  F ext/userauth/userauth.c 7f00cded7dcaa5d47f54539b290a43d2e59f4b1eb5f447545fa865f002fc80cb
  F ext/wasm/EXPORTED_FUNCTIONS.fiddle.in 27450c8b8c70875a260aca55435ec927068b34cef801a96205adb81bdcefc65c
- F ext/wasm/GNUmakefile 217dcb2e3058d7554c46a6e8c89fdb28006c2278206e3e9572ce52030736a5a6
- F ext/wasm/README-dist.txt dab111337028af58ec11cb35c2e1a82398217c399c7499fefab0509a0499a5d7
 -F ext/wasm/GNUmakefile 31cf62436f306eed8c8aa66991653395f62e52af7ad21a0de02f7d780cb8c398
++F ext/wasm/GNUmakefile 8d82b51a23f9c84c770abd72f18d95a95044a03a216e0246ebd1b3668619c77e
+ F ext/wasm/README-dist.txt 4a1db3677d0341a12434d1fd6c97aae2f96785d734641407a201b719f5d94f44
  F ext/wasm/README.md ef39861aa21632fdbca0bdd469f78f0096f6449a720f3f39642594af503030e9
  F ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-api d6a5078f48a5301ed17b9a30331075d9b2506e1360c1f0dee0c7816c10acd9ab
  F ext/wasm/api/EXPORTED_RUNTIME_METHODS.sqlite3-api 1ec3c73e7d66e95529c3c64ac3de2470b0e9e7fbf7a5b41261c367cf4f1b7287
  F ext/wasm/api/README.md 77a2f1f2fc60a35def7455dffc8d3f2c56385d6ac5c6cecc60fa938252ea2c54
- F ext/wasm/api/extern-post-js.c-pp.js 8923f76c3d2213159e12d641dc750523ead5c848185dc4996fae5cc12397f88d
 -F ext/wasm/api/extern-post-js.c-pp.js ea549ffcdd3f116de5b4cc08a428e0a91052c341b51b37f158747285f9ef2fe8
++F ext/wasm/api/extern-post-js.c-pp.js 44a3a169f55a8dba42cf688954b2625b9b9e6174f2ff02d4918a2ca8c3beab7f
  F ext/wasm/api/extern-pre-js.js cc61c09c7a24a07dbecb4c352453c3985170cec12b4e7e7e7a4d11d43c5c8f41
  F ext/wasm/api/post-js-footer.js cd0a8ec768501d9bd45d325ab0442037fb0e33d1f3b4f08902f15c34720ee4a1
  F ext/wasm/api/post-js-header.js 47b6b281f39ad59fa6e8b658308cd98ea292c286a68407b35ff3ed9cfd281a62
- F ext/wasm/api/pre-js.c-pp.js f060b108d0960798c0aa0688392a3c1a58a2e3c942f3560de1c4a7a1aa7af433
 -F ext/wasm/api/pre-js.c-pp.js 86b2909e07690792ecf14892e6ee4d2ea0b2d6bf8567ad3d549a8cc2e30828a0
++F ext/wasm/api/pre-js.c-pp.js 9ece5de1bb0509f0a8a360712fcc9c1291b9516c0be5bd66acedd6edbcec37a1
  F ext/wasm/api/sqlite3-api-cleanup.js 680d5ccfff54459db136a49b2199d9f879c8405d9c99af1dda0cc5e7c29056f4
  F ext/wasm/api/sqlite3-api-glue.js 0a93e58aabf52b32ddccbb107a1fd4552f2505e103ab63396c4d0a0743704785
- F ext/wasm/api/sqlite3-api-oo1.js e9fba119e9b1716b3f731838ed1ab18741401bcf4c51d2a4a6e9d1d23cf9d771
+ F ext/wasm/api/sqlite3-api-oo1.js a3892fd79070d8c947205d8b90d8218cdb12e7fd5027dced5805dd387b590a36
  F ext/wasm/api/sqlite3-api-prologue.js 69a74f2777aaafafc07ad2c922674fe3197ef63c921a3262b4772f937e7eb14a
  F ext/wasm/api/sqlite3-api-worker1.js c462199c40358f00f93e326206bddc756c52b93f2cb60ffb63f54fe4f9a9e977
  F ext/wasm/api/sqlite3-license-version-header.js a661182fc93fc2cf212dfd0b987f8e138a3ac98f850b1112e29b5fbdaecc87c3
  F ext/wasm/api/sqlite3-opfs-async-proxy.js 7795b84b66a7a8dedc791340709b310bb497c3c72a80bef364fa2a58e2ddae3f
  F ext/wasm/api/sqlite3-v-helper.js 6f6c3e390a72e08b0a5b16a0d567d7af3c04d172831853a29d72a6f1dd40ff24
- F ext/wasm/api/sqlite3-vfs-opfs.c-pp.js 50e4f6103dc65556e3e040f9e80eb8f14bfc6f979fa018952859f7755e201b27
 -F ext/wasm/api/sqlite3-vfs-opfs.c-pp.js bae9c4c40991a550450bb89dc34e6e1e1e875ae230ccdce3dbb99515517d3361
++F ext/wasm/api/sqlite3-vfs-opfs.c-pp.js a10bdc9695dcf453e120970a5de8a3e61db4e4047d0a7cc5a6d63dfe7ae87f4e
  F ext/wasm/api/sqlite3-wasi.h 25356084cfe0d40458a902afb465df8c21fc4152c1d0a59b563a3fba59a068f9
  F ext/wasm/api/sqlite3-wasm.c 76625a70937a8522d014ef686c32db5b53a3ee61850323f5c601d2ac39fe52fe
- F ext/wasm/api/sqlite3-worker1-promiser.js 0c7a9826dbf82a5ed4e4f7bf7816e825a52aff253afbf3350431f5773faf0e4b
- F ext/wasm/api/sqlite3-worker1.js 9d3d3dfc70bff8998c1d8ff6d881cf1c3d52468d635417f02796151fe6b31cd7
+ F ext/wasm/api/sqlite3-worker1-promiser.js f10c3ecd9df06f6320073c2ce230a7ed7c56034d8b88c1e57095f2a97faf423a
+ F ext/wasm/api/sqlite3-worker1.js 77b3835192469e9da23926ec8f78fb0b114a51d048dc54388709ac22b5c5f0a0
  F ext/wasm/batch-runner.html 4deeed44fe41496dc6898d9fb17938ea3291f40f4bfb977e29d0cef96fbbe4c8
  F ext/wasm/batch-runner.js 0dad6a02ad796f1003d3b7048947d275c4d6277f63767b8e685c27df8fdac93e
- F ext/wasm/c-pp.c 92285f7bce67ed7b7020b40fde8ed0982c442b63dc33df9dfd4b658d4a6c0779
+ F ext/wasm/c-pp.c 6d80d8569d85713effe8b0818a3cf51dc779e3f0bf8dc88771b8998552ee25b4
  F ext/wasm/common/SqliteTestUtil.js d8bf97ecb0705a2299765c8fc9e11b1a5ac7f10988bbf375a6558b7ca287067b
  F ext/wasm/common/emscripten.css 11bd104b6c0d597c67d40cc8ecc0a60dae2b965151e3b6a37fa5708bac3acd15
  F ext/wasm/common/testing.css 0ff15602a3ab2bad8aef2c3bd120c7ee3fd1c2054ad2ace7e214187ae68d926f
@@@ -528,9 -528,9 +528,9 @@@ F ext/wasm/sql/000-mandelbrot.sql 77533
  F ext/wasm/sql/001-sudoku.sql 35b7cb7239ba5d5f193bc05ec379bcf66891bce6f2a5b3879f2f78d0917299b5
  F ext/wasm/test-opfs-vfs.html 1f2d672f3f3fce810dfd48a8d56914aba22e45c6834e262555e685bce3da8c3f
  F ext/wasm/test-opfs-vfs.js f09266873e1a34d9bdb6d3981ec8c9e382f31f215c9fd2f9016d2394b8ae9b7b
--F ext/wasm/tester1-worker.html d43f3c131d88f10d00aff3e328fed13c858d674ea2ff1ff90225506137f85aa9
--F ext/wasm/tester1.c-pp.html d34bef3d48e5cbc1c7c06882ad240fec49bf88f5f65696cc2c72c416933aa406
--F ext/wasm/tester1.c-pp.js 7786fa3bdf074be8935e3a77b1ca135fd36ef6f87823c0695deaca585b133d06
++F ext/wasm/tester1-worker.html 258d08f1ba9cc2d455958751e26be833893cf9ff7853e9436e593e1f778a386b
++F ext/wasm/tester1.c-pp.html 1c1bc78b858af2019e663b1a31e76657b73dc24bede28ca92fbe917c3a972af2
++F ext/wasm/tester1.c-pp.js f199ef496aec40a7ddedcc84f996117c911eac36d377913993d3f0261f9427ac
  F ext/wasm/tests/opfs/concurrency/index.html 86d8ac435074d1e7007b91105f4897f368c165e8cecb6a9aa3d81f5cf5dcbe70
  F ext/wasm/tests/opfs/concurrency/test.js a98016113eaf71e81ddbf71655aa29b0fed9a8b79a3cdd3620d1658eb1cc9a5d
  F ext/wasm/tests/opfs/concurrency/worker.js 0a8c1a3e6ebb38aabbee24f122693f1fb29d599948915c76906681bb7da1d3d2
@@@ -2044,8 -2044,8 +2044,9 @@@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a9
  F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
  F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
  F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
- P e446c8b4aa2ffe075f9c289c771d62a414661c3ffe6abae5649c50af8e32fab6
- R d679b1424ddaeb09fc6eeb6c565e2751
- U drh
- Z 0e1eac878e4ebdd2f0ed91103111d8aa
 -P 792f43209c4b6e85386b6b3906814b7f2ad310d50ba563b3fd1cb37e55adf8db
 -R 6dd48572fe63ddeb1a6c689b0b2a68d4
++P bd9613fd63193bd6b33798d83f0ef21987ba468b53d13a25a31cb9e9e5f20562 6a5c4f6b19aa0704efe7f789102f757a1ed05d6542f37c7aa37a4439783944a3
++R 7e285c57f9c962c0e3cd104712b20885
++T +closed 6a5c4f6b19aa0704efe7f789102f757a1ed05d6542f37c7aa37a4439783944a3 Closed\sby\sintegrate-merge.
+ U stephan
 -Z 5f5447f2e7e7b095c0a2cbaeda82b72d
++Z 04a00083266e19e010eadc8bb14898d9
  # Remove this line to create a well-formed Fossil manifest.
diff --cc manifest.uuid
index fea530843c67b750c56b64582537b690869adf4e,ccc517841736e1d0b391cac281fa8aa95a3040e1..9b1cb2f613b3d2040b705adf4d520a4d7743f9b0
@@@ -1,1 -1,1 +1,1 @@@
- bd9613fd63193bd6b33798d83f0ef21987ba468b53d13a25a31cb9e9e5f20562
 -6a5c4f6b19aa0704efe7f789102f757a1ed05d6542f37c7aa37a4439783944a3
++24d3a53dea5e596230558e233cbbd9d0288b4c394cd5ea7b650fd99bff4cde2e