• exec/SlyEdit.js addfiles.js avatar_chooser.js avatars.js binarydecoder

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Tuesday, April 07, 2026 21:10:54
    https://gitlab.synchro.net/main/sbbs/-/commit/d36741c77f845209c70ea39d
    Modified Files:
    exec/SlyEdit.js addfiles.js avatar_chooser.js avatars.js binarydecoder.js bulkmail.js chksetup.js cleanup.js default.js dyndns.js email_sec.js emailval.js exportcfg.js fido-nodelist-syncterm.js fileman.js filescancfg.js fingerservice.js fseditor.js ftn-setup.js ftnmsgdump.js gopherservice.js imapservice.js importcfg.js inactive_user_email.js init-fidonet.js install-xtrn.js irc.js exec/ircbots/presence/presence.js exec/ircd.js ircdcfg.js ircmsg.js jsdocs.js lbshell.js listgate.js listserver.js exec/load/ansiedit.js ansiterm_lib.js ars_defs.js attrdefs.js avatar_lib.js ax25defs.js binkp.js cardlib.js cfglib.js cmdshell.js cterm_lib.js filelist_lib.js exec/load/ircd/channel.js config.js user.js exec/load/irclib.js logonlist_lib.js newsutil.js rss-atom.js sauce_lib.js sbbsimsg_lib.js sbbslist_lib.js shell_lib.js smbdefs.js tdfonts_lib.js telnet_lib.js termcapture_lib.js uifcdefs.js user_info_prompts.js userdefs.js vga_defs.js xbimage_lib.js exec/mqtt_pub.js mqtt_sub.js msglist.js msgscancfg.js newslink.js newuser.js nntpservice.js noyesbar.js playmidi.js playtone.js presence-service.js privchat.js purgefiles.js qnet-ftp.js qnet-http.js qotdservice.js renegade.js replace_text.js sbbsecho_upgrade.js sbbsedit.js sbbslist.js sutils.js exec/tests/global/load.js exec/textedit.js tickfix.js tickit.js tickitcfg.js update.js uselect_tree.js viewimsgs.js websocket_proxy_service.js websocketservice.js xtrn-setup.js xtrnmenu.js yesnobar.js
    Log Message:
    Change top-level const to var for SpiderMonkey 128 compatibility

    Per ECMA-262 6th Edition (ES6, 2015), Section 13.3.1, const creates block-scoped bindings in the global lexical environment that are non-configurable and cannot be deleted or redeclared. Section 15.1.11 (GlobalDeclarationInstantiation) requires a SyntaxError when a script
    attempts to declare a lexical binding that already exists in the global
    lexical environment.

    In long-running BBS terminal sessions, loadable modules (e.g. msglist.js, fileman.js) may be executed multiple times in the same JS context. Under SpiderMonkey 1.8.5, top-level const was a Mozilla extension with var-like (function-scoped) semantics that allowed redeclaration. Under SpiderMonkey
    128, which implements ES6 const semantics, re-executing a script with
    top-level const throws: "SyntaxError: redeclaration of const <name>".

    Replace top-level const with var in all affected scripts to allow
    repeated execution in the same JS global scope.

    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net