{
    my @ARGS;
    my Mu $argiter := nqp::getcurhllsym('$!ARGITER');
    @ARGS.push(nqp::p6box_s(nqp::shift($argiter))) while $argiter;
    nqp::bindkey(nqp::who(PROCESS), '@ARGS', @ARGS);
    PROCESS::<$ARGFILES> = IO::ArgFiles.new(:args(@ARGS));
}

# vim: ft=perl6 expandtab sw=4

multi sub INITIALIZE_DYNAMIC('@*ARGS') {
    my @ARGS;
    my Mu $argiter := nqp::getcurhllsym('$!ARGITER');
    @ARGS.push(nqp::p6box_s(nqp::shift($argiter))) while $argiter;
    PROCESS::<@ARGS> := @ARGS;
}
multi sub INITIALIZE_DYNAMIC('$*ARGFILES') {
    PROCESS::<$ARGFILES> = IO::ArgFiles.new(:args(@*ARGS));
}

# vim: ft=perl6 expandtab sw=4

Make @*ARGS / *$ARGFILES initialization lazy
Make @*ARGS / *$ARGFILES initialization lazy

Should shave off a bit from bare startup time
