- check that the runtime doesn't use methods that are too new
- add linting rule to prevent references to the compiler in the runtime (this is important for the first check, else the ambient node typings would be included, which includes a definition for `at()`, which means we no longer would get errors when violating the "don't use new methods" rule in the runtime)
- fix code as a result of these new checks
closes#10438
* chore: don't swallow rejected promise errors
* ignore rules rather than adding catch blocks. add async to functions returning promises
* remove redundant asyncs
* remove extremely pointless rule
* remove another daft rule
* this is what typescript is for
* again, typescript already has this covered, we don't need it
* simplify
* this rule is harmless
---------
Co-authored-by: Rich Harris <rich.harris@vercel.com>