Eleven reports from @takahashim, a faster interpreter, and v0.0.28

Eleven more issues from @takahashim, among them import.meta.url, unhandled-rejection reports and V8-format stacks, are fixed, and v0.0.28's interpreter runs Babel and the TypeScript compiler more than twice as fast as v0.0.27.

@takahashim, whose seven reports shaped v0.0.27, sent eleven more, the last four as proposals with a working design. A regex that reached its step ceiling could not be caught once a host set limits; it is now a RangeError the script can catch, and a host can set the ceiling and the hardened profile's other caps per VM (#69, 6f730a8d, ff104592). A full heap is reported as the heap's rather than a regex's (#70, 4b94c120), new on a Proxy of an arrow throws before its trap (#71, 1c43deca), a scope indexes its names once it holds 16, so 6,400 vars compile in 8 ms instead of 352 (#72, c0d9527b), re-arming the heap ceiling collects only after a budget found the heap at it (#73, 72eda1aa), resource_usage() reads an O(1) estimate (#74, cf8439d1), and a top-level const destructuring binds under script semantics (#75, dcbe4695).

Modules have import.meta.url (#76, 68f9e393); unhandled rejections are reported to the host, and zipp ends with status 1 on one, as Node does (#77, bcd4174d); Error.prototype.stack gives V8-format frames placed where V8 places them (#78, fced020a); and ScriptState::run_script runs a classic script (#79, 0509416c). Over the same weeks the interpreter got faster on large programs: Babel's workload takes 5.2 s instead of 11.3 s, a program of 256 or more functions runs with its JIT off (ca511f54), and a switch over string literals is one table lookup (b63fc659). v0.0.28 was published on 21 October from da0fe6b1.