Pierre-Yves Gérardy
Pierre-Yves Gérardy
Another corner case is the argument/context of DOM event handlers (`e.currentTarget`, etc...).
@Rich-Harris More generally, objects that are injected from foreign code as function arguments (or otherwise) must not have their properties mangled. Maybe that was implicitly covered by "part of an...
@porsager sure take your time :-)
Adding some clarifications, because there are j2c specific bits in the docs. When you are ready, start here: The backend/filter API provides a PostCSS-like system without a need to materialize...
@porsager The prefix plugin is client-side only at the moment, for SSR, I have a PostCSS adapter that creates a PostCSS AST out of what you feed it, applies PostCSS...
Note that TypeScript may be an exception here. At least at some point they used to recommend using extension-less imports. Not sure if it is still the case.
Ok, I'm on it... Why are you using the `RegExp` constructor rather than literals?
Well, if I [follow the JS Spec with a hack for identifiers](https://flems.io/#0=N4Igxg9gdgzhA2BTEAucD4EMAONEBMQAaEAMwEskZUBtUKTAW2TQDoALAF0fmPSk6IBqECAC+RekxYhWAK2olIAoZxEB6dQAJsACiiIA7loBKiAOYBRAB56A5OUbYIAJ04AdT+5gAqOmIASL3dDHyJgmABdHwifXQB+FC1SFwhGLQAfAEoaTzt3EEjg1njg9V1WGK8SmkwAWgAvaJy8gsi7Ii07czssrPcoAc0tFy0AXi11R2c3T19-IJCwuei5uMTk1PTsmnzCzxLPcsqD+NrG5t229XMBgeUYTi1gPABHAFchMEROxHJOdiIFydGDvUgUaydMA4TjvFyIMTjLSQJwQPBmcyIWx3KAPJ6MTAATwARogkaDweRrLoCqUQP1cdBHloGkCINh4O8YOSwRCaSAYvT7kyntBEK5GK4yRMKXyCgBqAoMvEstkcrnwzlgTiYAQ8ynUgo+OnKkVaXWEpHqGgAPUi6hxKseLnIUHMSL+AKBNKgWi0b0+uMQuj2HVVqXVMF0nsBLl0Aa+wYKwQKnQtWU66lY6j6nVDGYGfoTQf5e06rIjnKjMe9xe+-JTxHNUEJGcm2dzWgKewLvv9iA+if5AANU+H2VXo-9Y-GB4H68ngk302mW52CqP6eEoAzhbAnijmHqJjW44X+4OSwVNGPrTbPFBouo8w-etui3Oh9fBeW1VXNe82q6pwugrl2AoOkKO6OmaMDYJg3wetO3oOt4z7ImkR6cKa+5aAA+kiFYTly8bwd8OHMnhBETGKEpSroeG7oyuHkPgqjkBQQJWrakhiEcKzyg6gzMcyABy0gAMpkYgACSqJuOSn5XgKY54Z0BSYDAqlqVorHsZxLhMSqckzJwUmIGAHHkFxJ7IWefZ1sGekCFZQKdFR6kgJp2mdM5nCuYZ766WxLkGQMRlmiZricAAMuQzIykpC59kRka6FFbjmZZBnuZ54RNoxQUZWZ2AWQF4Uwbh4nMPgxXcrZXr2R+l4LiAwCqZ5fFbuejn8u1BWdMVcWPLlWgEiSSbEKpbYFF1bZ+l20HCcZ8mcAAwlgXLSlop4+s187Bh5wX6dZwI7XZe0Lb1Omph152NZdC0XgdujVYgUkIbJq3uYV55Pb1b21atMDuQyT25n9+F4eeEMOUlwZvR93zFT9vb7UOgN1aDfoVctkWrQAIhZWAuJg-nQIpLVJn2BTTNFt19rtkPXSCnAum6aNXfD6WrRtmBbZ5KRpHdzquuYYNaAyTF6MVRNgCTZPkNADLDFosvE5gpPk1AKBDNodNuMVfNbQAYlsxt4AA3HrumrQAshA+DvEgWUBdbwnDEbm14LrUCe6tBBE6Q-PwJwABCrr4GLNuI9JxUx9IQOmVpfvaMVgeIMHzvh5HYtELHn3x6nasB-gQchznUBR26+eJ3VOL+6ZGdZ6HEdV2LvuN9FBBt9Xtwe9oBfI6tnfaD4mnp-gvfRwPWiY8Do-PHxxfAHVw2cMvwyr8D69EMvNtm2kFuIIvQuMA7Tsu6V2WnQ3ac7-FnCL8VrthcXa+P0QL-X+Vs-f2VBln6l2nm6G2MkQr+QMm9CewDc6gNnhfZ270f6AJthJNmYs4qCFJvAO+Jcm5TzgeYReIDzDgJOkCGgAA-AAmtZeA+BOhUIAIKGEwP8IoUA+B4CQNqJWsARAABYUCCIAAziEkCABgzARCsDADARQ-BBDCDQOISIJB4CugANbUBQHQKR0gRAomcHgOo8JMS2D4HCXgaAuCcFwCgTQ7woDYC0eYORaR1DGLRIgMxFgsTYAAAKiNYAAVlYAAZi8ZhaAChomolMeYgJ8hFGcEJKVEQMAwAumwGoMQkQxBAA), I end up with this for just detecting imports: ``/import(?:(?:\s|\/\/[^\n]*\n|\/\*[^]*?\*\/)*(?:"(?:\\[^]|.)*"|'(?:\\[^]|.)*'|`(?:\\[^]|[^])*`)|(?:(?:(?:\s|\/\/[^\n]*\n|\/\*[^]*?\*\/)*)+[^,{}\/\s]+(?:(?:\s|\/\/[^\n]*\n|\/\*[^]*?\*\/)*,(?:\s|\/\/[^\n]*\n|\/\*[^]*?\*\/)*(?:\*(?:\s|\/\/[^\n]*\n|\/\*[^]*?\*\/)*as(?:(?:\s|\/\/[^\n]*\n|\/\*[^]*?\*\/)*)+[^,{}\/\s]+(?:(?:\s|\/\/[^\n]*\n|\/\*[^]*?\*\/)*)+|(?:\{(?:\s|\/\/[^\n]*\n|\/\*[^]*?\*\/)*\}|\{(?:\s|\/\/[^\n]*\n|\/\*[^]*?\*\/)*(?:(?:[^,{}\/\s]+(?:(?:\s|\/\/[^\n]*\n|\/\*[^]*?\*\/)*)+as(?:(?:\s|\/\/[^\n]*\n|\/\*[^]*?\*\/)*)+[^,{}\/\s]+|[^,{}\/\s]+)(?:\s|\/\/[^\n]*\n|\/\*[^]*?\*\/)*,(?:\s|\/\/[^\n]*\n|\/\*[^]*?\*\/)*)*(?:[^,{}\/\s]+(?:(?:\s|\/\/[^\n]*\n|\/\*[^]*?\*\/)*)+as(?:(?:\s|\/\/[^\n]*\n|\/\*[^]*?\*\/)*)+[^,{}\/\s]+|[^,{}\/\s]+)(?:\s|\/\/[^\n]*\n|\/\*[^]*?\*\/)*(?:,(?:\s|\/\/[^\n]*\n|\/\*[^]*?\*\/)*)?\})(?:\s|\/\/[^\n]*\n|\/\*[^]*?\*\/)*)|(?:(?:\s|\/\/[^\n]*\n|\/\*[^]*?\*\/)*)+)|\*(?:\s|\/\/[^\n]*\n|\/\*[^]*?\*\/)*as(?:(?:\s|\/\/[^\n]*\n|\/\*[^]*?\*\/)*)+[^,{}\/\s]+(?:(?:\s|\/\/[^\n]*\n|\/\*[^]*?\*\/)*)+|(?:\{(?:\s|\/\/[^\n]*\n|\/\*[^]*?\*\/)*\}|\{(?:\s|\/\/[^\n]*\n|\/\*[^]*?\*\/)*(?:(?:[^,{}\/\s]+(?:(?:\s|\/\/[^\n]*\n|\/\*[^]*?\*\/)*)+as(?:(?:\s|\/\/[^\n]*\n|\/\*[^]*?\*\/)*)+[^,{}\/\s]+|[^,{}\/\s]+)(?:\s|\/\/[^\n]*\n|\/\*[^]*?\*\/)*,(?:\s|\/\/[^\n]*\n|\/\*[^]*?\*\/)*)*(?:[^,{}\/\s]+(?:(?:\s|\/\/[^\n]*\n|\/\*[^]*?\*\/)*)+as(?:(?:\s|\/\/[^\n]*\n|\/\*[^]*?\*\/)*)+[^,{}\/\s]+|[^,{}\/\s]+)(?:\s|\/\/[^\n]*\n|\/\*[^]*?\*\/)*(?:,(?:\s|\/\/[^\n]*\n|\/\*[^]*?\*\/)*)?\})(?:\s|\/\/[^\n]*\n|\/\*[^]*?\*\/)*)from(?:\s|\/\/[^\n]*\n|\/\*[^]*?\*\/)*(?:"(?:\\[^]|.)*"|'(?:\\[^]|.)*'|`(?:\\[^]|[^])*`))/`` ... which is probably a bit much... Also,...
A third possibility would be to load said runtime, but I don't know how heavy it is, or if it can be done lazily. I suppose that targeting ES6 would...
It took me a while to remember which was which as well... What about this (glowing/dim depending on state)? "Live" may clash with UI related to streaming but hopefully this...