I have to recommend ComPressure for an accurate taste of the challenges in designing those kind of systems, on top of being my favorite Zachtronics-style puzzle.
Firefox used to have an optional exception for icon fonts on the "allow custom fonts" switch which I found very sufficient. Not sure when it was removed or why, but that was a big loss.
Crashes and visual glitches are very rare, but there are a lot of bugs that just go unnoticed due to so much stuff happening at any time.
See [0] for the best example, but while now that those are documented it's clear that that's the worst case, a good number of champions contented for the Most Bugged crown over the years, even months after being released or still unfixed to date.
Other than that the new CEF client is still more buggy and unstable than the old one (same guy who made the above list also had one for the client although that hasn't been updated in months AFAIK) and at any time there has always been some sort of bug related to pathing, vision, or targeting.
Also I'm not 100% sure about the last year, but I think there as never been one since at least when I started playing in 2013 when some near-gamebreaking champion bug didn't make it to the "LTS" patch fixed for the LCS.
At least on the beta channel that hasn't always been flawless. You can find many reports and patch notes regarding corrupted sessions and I've definitely lost some work over the years to that, the last time happening just half a year ago on the then latest version.
I don't think it's that easy. If the context is making javascript output something different in it's REPL for just "foo" vs "console.log(foo)", there's other pieces you would need.
Like overriding a built-in type and getting function.caller into valueOf(). As far as I can tell, JS doesn't let you just tweak valueOf(), you would have to re-implement all of, for example, the String class.
Reimplementing whole classes wouldn't have been a problem, just replace the original ones with a proxy to a copy.
Luckily console.log calls are actually excluded from the callers stack, so the only way is to change console itself. Just as evil if you also intercept console methods logging and return the original ones, but less of a mess at least.
Another still actively developed alternative is SliTaz [0].
Comes in images from 45Mb for a working desktop down to a bootable floppy, rolling release, runs in RAM with no persistence by default, and uses a custom package manager that, outside of having its own decently sized repo, can convert packages from Debian, RPM, Slax, Puppy, Slackware, NuTyX, Arch, Alpine, OpenWrt, 0Linux, paldo, Void and Tinycore according to the manual.
https://jsbin.com/korotaluso/edit?js,output
reply