Verify six app seams and record Phase 4 performance measurements
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
Source: `cd4a25a`, 587,029 bytes. Acorn 8 parses classic scripts with source ranges; eslint-scope 8 resolves lexical references, including shadowing. Outside references are references outside the declaration’s owning top-level statement, plus unresolved references from other frontend classic scripts. Property names and strings are not lexical references. Browser globals and other scripts’ globals remain available. Positions below refer to this source, before extraction.
|
||||
|
||||
Reproduce: `npm install --prefix perf/.tmp/analysis --no-audit --no-fund acorn@8 eslint-scope@8`, then run `node perf/analyze-app.cjs`. Analysis tools are development-only; no frontend/server import is added.
|
||||
Reproduce: `npm install --prefix perf/.tmp/analysis --no-audit --no-fund acorn@8 eslint-scope@8`, then run `node perf/analyze-app.cjs cd4a25a`. Analysis tools are development-only; no frontend/server import is added.
|
||||
|
||||
## Measured candidate ranking
|
||||
|
||||
@@ -414,3 +414,34 @@ Outside references use app line numbers or `file:line`; imports name other app b
|
||||
| bootViewFromUrl | 12531 | 391 | view, render, URL_VIEWS | 12625 |
|
||||
| bootSearchFromUrl | 12545 | 414 | els | 12626 |
|
||||
| boot | 12563 | 11475 | WEB, APP_VERSION, perfMark, perfMeasure, webFetch, SaveQueue, API, DEFAULT_SETTINGS, data, view, current, abA, abB, cachedIds, downloading, $, els, persist, ProfileSecret, profileHeaders, syncOnLaunch, updateProfileStatus, adoptSharedPlaylistFromUrl, startPlaylistInboxWatch, adoptProfileFromUrl, syncMuteIcon, toast, uid, applyAppearance, refreshCachedIds, startCacheResyncWatch, warmOfflineThumbs, preload, preloadPlaylist, preloadPinnedPlaylists, Player, wirePlayerEvents, updatePlayBtn, Notes, Remote, Transition, CatalogSync, Recommendations, Presenter, Share, EqRender, PiP, EQ, SectionRail, Party, updateBottomChrome, updateQueueBadge, playNext, updateLoopRepeatButtons, playPrev, isServiceModeOpen, renderSidebar, exportToDevice, render, slim, wireShortcutHelp, showModal, closeModal, setupClassicLayout, setupPortraitPwaWatcher, setupViewportAnchorGuard, wireUI, setAbA, setAbB, clearAb, saveAbMarkers, updateAbUI, renderSmartSidebar, checkAutoBackup, checkBuildTag, pollBuildTag, checkUpdateOutcome, registerServiceWorker, bootShareFromUrl, bootViewFromUrl, bootSearchFromUrl | 12734 |
|
||||
|
||||
## Final cuts and review
|
||||
|
||||
Exactly six seams shipped: 3c9a24a (eager shell/shared renderers), 5fb9564
|
||||
(Presenter), 8e7fa19 (Remote), 94ea211 (Watch party), 0475a18 (Share/External),
|
||||
b335f95 (Stats view). 2c50035 handles lazy-entry failures without rejected UI
|
||||
navigation promises. Final app.js: 408,473 bytes; net removal 178,556 bytes
|
||||
(30.4169%), including 2,976 bytes of facade/call-site overhead.
|
||||
|
||||
Original bytes moved, independently counted from UTF-8 AST source slices:
|
||||
98,378 eager renderer/shell/rail; 9,492 Presenter; 30,421 Remote;
|
||||
22,833 Party; 13,334 Share/External; 7,074 Stats view. Published files include
|
||||
headers/registry wrappers. Shared functions retain classic global lexical access;
|
||||
new UI definitions evaluate safely before data/$/els/Player initialization.
|
||||
|
||||
Self-review against master §6/6b: all new files belong to explicit manifest
|
||||
groups and legacy SHELL; source JSON matches assets.json; core scripts load first;
|
||||
required eager features stay parsed. Player, Transition, Wave, EQ/level rendering,
|
||||
queue, persistence, tracking and sleep bodies have exact source fingerprint tests.
|
||||
Transport internals move intact; entry button bindings move to core facades to
|
||||
avoid duplicate listeners. Inbound APIs remain short; synchronous boolean/hooks
|
||||
never become promises. Boot URL/session triggers remain; no banner/cache-header
|
||||
rule is changed. Executing groups remain pinned; no disposal/handoff or live
|
||||
replacement is introduced. Contract/N-1 safeguards remain tested by existing
|
||||
unit/integration checks.
|
||||
|
||||
Deliberately left: Notes/editor, service mode, playlist mutations, persistence,
|
||||
player/queue/boot, audio watchdogs/EQ/sleep, Gestures, video editor/export glue and
|
||||
other candidates beyond six seams. Settings paint moves to views-core but remains
|
||||
eager. Now-playing metadata mutations inside Player stay there to honor the
|
||||
untouched-playback constraint; their DOM, action paint and mini bar are eager.
|
||||
|
||||
Reference in New Issue
Block a user