conversion of argument or return types, but see xWrap() and
xCallWrapped() for variants which do.
+ If the first argument is a function is is assumed to be
+ a WASM-bound function and is used as-is instead of looking up
+ the function via xGet().
+
As a special case, if passed only 1 argument after the name and
that argument in an Array, that array's entries become the
function arguments. (This is not an ambiguous case because it's
not legal to pass an Array object to a WASM function.)
*/
target.xCall = function(fname, ...args){
- const f = target.xGet(fname);
+ const f = (fname instanceof Function) ? fname : target.xGet(fname);
if(!(f instanceof Function)) toss("Exported symbol",fname,"is not a function.");
- if(f.length!==args.length) __argcMismatch(fname,f.length)
+ if(f.length!==args.length) __argcMismatch(((f===fname) ? f.name : fname),f.length)
/* This is arguably over-pedantic but we want to help clients keep
from shooting themselves in the foot when calling C APIs. */;
return (2===arguments.length && Array.isArray(arguments[1]))
jsFuncToWasm().
- bindScope (string): one of ('transient', 'context',
- 'singleton'). Bind scopes are:
+ 'singleton', 'permanent'). Bind scopes are:
- 'transient': it will convert JS functions to WASM only for
the duration of the xWrap()'d function call, using
const __xResultAdapterCheck =
(t)=>xResult.get(t) || toss("Result adapter not found:",t);
+ /**
+ Fetches the xWrap() argument adapter mapped to t, calls it,
+ passing in all remaining arguments, and returns the result.
+ Throws if t is not mapped to an argument converter.
+ */
cache.xWrap.convertArg = (t,...args)=>__xArgAdapterCheck(t)(...args);
+ /**
+ Identical to convertArg() except that it does not perform
+ an is-defined check on the mapping to t before invoking it.
+ */
cache.xWrap.convertArgNoCheck = (t,...args)=>xArg.get(t)(...args);
+ /**
+ Fetches the xWrap() result adapter mapped to t, calls it, passing
+ it v, and returns the result. Throws if t is not mapped to an
+ argument converter.
+ */
cache.xWrap.convertResult =
(t,v)=>(null===t ? v : (t ? __xResultAdapterCheck(t)(v) : undefined));
+ /**
+ Identical to convertResult() except that it does not perform an
+ is-defined check on the mapping to t before invoking it.
+ */
cache.xWrap.convertResultNoCheck =
(t,v)=>(null===t ? v : (t ? xResult.get(t)(v) : undefined));
-C Fix\sthe\sTreeView\sdisplay\sof\sa\sLIMIT\sclause\son\sa\scompound\squery.\s\sDebugging\ncode\sonly\s-\snot\spart\sof\sproduction\sbuilds.
-D 2024-04-26T11:32:50.631
+C Additional\sinternal\sdocs\sin\sthe\swasm\sutilities.
+D 2024-04-26T18:24:23.472
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
F ext/wasm/common/SqliteTestUtil.js 7adaeffef757d8708418dc9190f72df22367b531831775804b31598b44f6aa51
F ext/wasm/common/emscripten.css 11bd104b6c0d597c67d40cc8ecc0a60dae2b965151e3b6a37fa5708bac3acd15
F ext/wasm/common/testing.css e97549bab24126c24e0daabfe2de9bb478fb0a69fdb2ddd0a73a992c091aad6f
-F ext/wasm/common/whwasmutil.js 4c64594eecc7af4ae64259e95a71ba2a7edf118881aaff0bba86d0c7164e78e4
+F ext/wasm/common/whwasmutil.js fc923692f51b9a47cb6c3d0ab350db542cf6774c39d9e4ed9e894b55180d6989
F ext/wasm/demo-123-worker.html a0b58d9caef098a626a1a1db567076fca4245e8d60ba94557ede8684350a81ed
F ext/wasm/demo-123.html 8c70a412ce386bd3796534257935eb1e3ea5c581e5d5aea0490b8232e570a508
F ext/wasm/demo-123.js c7b3cca50c55841c381a9ca4f9396e5bbdc6114273d0b10a43e378e32e7be5bf
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P e6df846f36209bac3e420dd80ce2bbbd87ab7a20b8063fce05f78a3c7ab6027e
-R cad28780e6b446bd6e2b3d9b26a145c6
-U drh
-Z 00ad49f6765aaa2802fdc1e87b94bb22
+P 38f1e5ce4eedd59fbeb0a0d676d26dfe8a3313189ab9b9e4a5a1ed6721b73a14
+R 42961bb992b575c9ac9834f429717116
+U stephan
+Z e5e500cd82301a12835836646a3b6e08
# Remove this line to create a well-formed Fossil manifest.