Thread:Talk:ResourceLoader/JavaScript Deprecations/Deprecation plan/reply (2)

Legacy code that is no longer being actively used by core should be removed entirely.

Where there are legacy function & variable APIs that we can cleanly make shims for, it's very nice to be able to make available. Where there aren't, keeping the old code as-is in a "legacy quarantine" doesn't make much sense to me, as anything attempting to call them will still have to jump through hoops to find the quarantine module and use it in the first place... and then much of the time they may end up failing as they're out of date with the rest of the interface.

Our current situation per 29753 is that "legacy" code in wikibits.js is still:
 * included in core
 * always loaded
 * actively used by core

and there's "new code" to replace it which is:
 * not loaded at all
 * not used at all

ergo, it's not a case of legacy code that's been superseded -- it's active live code still in active live use.

The course of action I recommend is to finish that job: load and use the new code, remove the old code, and supply a compatibility shim for the old var/function if anything needs it.