… (partially) the Array-versus-Hash initialization speed anomaly described in RT #111848. Each Array element access via .at_pos($pos) resulted in an expensive call to self.exists($pos) for each access, whereas Hash element accesses via .at_key($key) were able to use nqp::existskey() directly. This patch uses nqp::existspos() to hotpath the detection of existing elements and avoids calls to self.exists($pos) when the Array is already fully reified. For the benchmark given in RT #111848, this results in a ~25% speedup for array element accesses, and brings it to within 5% of Hash element access times. (At present Array element accesses still have more overhead at the PIR level than Hash element accesses due to laziness considerations and boundary checks.)
…ils as it expects POST to run in declaration order, not reverse order.
… get $_ set to the result yet, and one failing POST doesn't abort the rest. Even without that, can pass 17/25 tests in pre-post.t already.
…don't add them again in an extra way in the Actions. The extra way in question also didn't escape output, meaning a foobar'd.p6 would cause invalid code-gen; sisar++ for reporting.
…om multiple roles.