From: stephan Date: Wed, 15 Jan 2025 21:09:19 +0000 (+0000) Subject: Teach tool/stripccomments.c that a backslash immediately preceeding a forward slash... X-Git-Tag: version-3.49.0~107 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3ba9adc5c165055268cb0a75020e8a1296c619b8;p=thirdparty%2Fsqlite.git Teach tool/stripccomments.c that a backslash immediately preceeding a forward slash means that that forward slash cannot be the start of a comment. This is intended to allow JavaScript regular expressions containing \/* (like [https://github.com/emscripten-core/emscripten/issues/23412|the one introduced in emsdk 4.0.0]) to pass through properly. Re-enable comment-stripping in the JS dist builds. FossilOrigin-Name: db21d6cc9d1c425deffc0e4e92173caf586e6ac66110c71a4930b21e3e7f84b9 --- diff --git a/ext/wasm/dist.make b/ext/wasm/dist.make index 10c64e16d6..60699ff5c0 100644 --- a/ext/wasm/dist.make +++ b/ext/wasm/dist.make @@ -104,7 +104,8 @@ STRIP_K2.js := $(sqlite3.js) $(sqlite3.mjs) \ # to know that it's in a regex or string literal. Because of that, # comment-stripping is currently disabled, which means the builds will # be significantly larger than before. -apply_comment_stripper := false +#apply_comment_stripper := false +apply_comment_stripper := true # ^^^ shell command true or false dist: \ $(bin.stripccomments) $(bin.version-info) \ diff --git a/manifest b/manifest index 47d06a98cd..611f9cccda 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Work\saround\s[https://github.com/emscripten-core/emscripten/issues/23420|a\sbehavior\schange\sin\semsdk\s4.0.0]\swhich\sbreaks\sthe\sload/init\stiming\sof\sthe\swasm\smodule. -D 2025-01-15T20:53:14.915 +C Teach\stool/stripccomments.c\sthat\sa\sbackslash\simmediately\spreceeding\sa\sforward\sslash\smeans\sthat\sthat\sforward\sslash\scannot\sbe\sthe\sstart\sof\sa\scomment.\sThis\sis\sintended\sto\sallow\sJavaScript\sregular\sexpressions\scontaining\s\\/*\s(like\s[https://github.com/emscripten-core/emscripten/issues/23412|the\sone\sintroduced\sin\semsdk\s4.0.0])\sto\spass\sthrough\sproperly.\sRe-enable\scomment-stripping\sin\sthe\sJS\sdist\sbuilds. +D 2025-01-15T21:09:19.736 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md e108e1e69ae8e8a59e93c455654b8ac9356a11720d3345df2a4743e9590fb20d @@ -668,7 +668,7 @@ F ext/wasm/demo-worker1-promiser.c-pp.html 635cf90685805e21772a5f7a35d1ace80f98a F ext/wasm/demo-worker1-promiser.c-pp.js fcc628cb42fcfaf07d250477801de1e6deb1e319d003976612a0db8d76b9fccc F ext/wasm/demo-worker1.html 2c178c1890a2beb5a5fecb1453e796d067a4b8d3d2a04d65ca2eb1ab2c68ef5d F ext/wasm/demo-worker1.js 836bece8615b17b1b572584f7b15912236a5947fe8c68b98d2737d7e287447ef -F ext/wasm/dist.make a5bed3b6e6d6a644e1cd416f18b799b956765333130f948d1065872a7f1ce199 +F ext/wasm/dist.make 92ef4ffe33022a50f92d602acabad10bd8dd91759f3eb7df27fc6d7d37072b96 F ext/wasm/example_extra_init.c 2347cd69d19d839ef4e5e77b7855103a7fe3ef2af86f2e8c95839afd8b05862f F ext/wasm/fiddle.make d4969f0322a582c57a22ce3541f10a5b09a609d14eab32891f613f43b3c14d8b F ext/wasm/fiddle/fiddle-worker.js 850e66fce39b89d59e161d1abac43a181a4caa89ddeea162765d660277cd84ce @@ -2193,7 +2193,7 @@ F tool/src-verify.c d00f93263aa2fa6ba0cba0106d95458e6effb94fdb5fc634f56834f90c05 F tool/srcck1.c 371de5363b70154012955544f86fdee8f6e5326f F tool/srctree-check.tcl 1f1f505835a4beca64c1751a7ebec5c41a1ddf22b1e80481345b95059eef6583 F tool/stack_usage.tcl f8e71b92cdb099a147dad572375595eae55eca43 -F tool/stripccomments.c 20b8aabc4694d0d4af5566e42da1f1a03aff057689370326e9269a9ddcffdc37 +F tool/stripccomments.c dfe9cc03cf87728ac9836be30763f8aa52b82caca0780b3d3f3572e4643b01d3 F tool/symbols-mingw.sh 4dbcea7e74768305384c9fd2ed2b41bbf9f0414d F tool/symbols.sh 1612bd947750e21e7b47befad5f6b3825b06cce0705441f903bf35ced65ae9b9 F tool/tclConfigShToAutoDef.sh 44ec55046d86a3febb2cb3e099399b41794e80e9cd138eee7b9b016f819e882b x @@ -2205,8 +2205,8 @@ F tool/version-info.c 3b36468a90faf1bbd59c65fd0eb66522d9f941eedd364fabccd7227350 F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7 F tool/warnings.sh 49a486c5069de041aedcbde4de178293e0463ae9918ecad7539eedf0ec77a139 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f -P dbc2d6a244fdafd208239894dbdd8f139db6ca20dd8f1ed00d87028e0cb60570 -R 723821a02135b50496a5bd528b97b64e +P 00a750184bcf1a94bf4e7f1d5029a42671e87e2997ae97be07bd900d3702883d +R 1dd6d511f4cfda5dc1ec4a63bbc6ac95 U stephan -Z ebeb04455686fb17ca7f0190e9405462 +Z 602290f471545d4fbdf4261f6ac0243b # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index 4b58858647..0a601b281b 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -00a750184bcf1a94bf4e7f1d5029a42671e87e2997ae97be07bd900d3702883d +db21d6cc9d1c425deffc0e4e92173caf586e6ac66110c71a4930b21e3e7f84b9 diff --git a/tool/stripccomments.c b/tool/stripccomments.c index 53933c0138..1bdb5c6b82 100644 --- a/tool/stripccomments.c +++ b/tool/stripccomments.c @@ -111,7 +111,24 @@ void do_it_all(void){ } else if(slash == ch){ /* MARKER(("state 0 ==> 1 @ %d:%d\n", line, col)); */ - state = S_SLASH1; + if( '\\'==prev ){ + /** + JS regexes may contain slash-asterisks, as happened at: + + https://github.com/emscripten-core/emscripten/issues/23412 + + Such regexes will always necessarily be preceeded by a + backslash, though. + + It is hypothetically possible for a legitimate comment + slash-asterisk to appear immediately before a + backslash, but that seems like an even rarer corner + case than the JS regex case. + */ + fputc(ch, out); + }else{ + state = S_SLASH1; + } break; } fputc(ch, out);