1. 11
  1. 4

    That’s very cool, thanks for sharing the nitty-gritty!

    I wasn’t aware of Chrome’s measureMemory(), that seems useful. Firefox has instilled in me a sort of skepticism towards IndexedDB, but otherwise it sounds like a neat solution to free up some memory.

    A bit tangential, but re: Svelte as the framework of choice — how did it pan out for a component like this? I’m curious if you found that the implementation flows naturally, or whether you had to jump hoops or resort to its escape hatches (e.g. managing event listeners out-of-band).

    1. 3

      Thanks for the feedback! The more worrying Firefox IDB issue to me is that it’s totally broken in private browsing mode. But I’ve already worked around this in my application (i.e. show the user an error), so I’m a bit less concerned about dealing with it in the picker. Also hopefully Firefox will fix this someday. (If not, it’s a privacy leak! This is how news websites know you’re in private browsing! 😛)

      Svelte is a great framework for this kind of thing. The only awkward part was some of the issues with building it as a custom element, e.g. I had to build it as one single component for perf reasons, and also that the destroy logic actually has a memory leak unless you do some odd workarounds.

      Also I’m pretty sure it could have a lower bundle size footprint if it built it fully custom, but frankly that would just be a lot of code, whereas with Svelte the source code is quite terse.

    2. 2

      This is very cool and appears to be a decent improvement over the previous state of the art. Thanks for sharing it and writing the post.

      No OS has Emoji v13 yet

      JoyPixels published a Unicode 13 update recently. This is likely a small user-base but if you use that as your emoji font like I do (via ttf-joypixels package) then you have Unicode 13 emoji.