///|
pub impl @quickcheck.Arbitrary for CompType with fn arbitrary(t, state) {
match state.next_uint() % 3 {
1 => StructCompType(array_of_arbitrary(5, t, state))
2 =>
FuncCompType(
array_of_arbitrary(5, t, state),
array_of_arbitrary(5, t, state),
)
_ => ArrayCompType(@quickcheck.Arbitrary::arbitrary(t, state))
}
}
///|
pub impl @quickcheck.Arbitrary for RecType with fn arbitrary(t, state) {
if (state.next_uint() & 1) == 1 {
SingleRecType(@quickcheck.Arbitrary::arbitrary(t, state))
} else {
GroupRecType(array_of_arbitrary(5, t, state))
}
}
///|
pub impl @quickcheck.Arbitrary for HeapType with fn arbitrary(size, st) {
if (st.next_uint() & 1) == 1 {
AbsHeapTypeHeapType(@quickcheck.Arbitrary::arbitrary(size, st))
} else {
HeapType(@quickcheck.Arbitrary::arbitrary(size, st))
}
// Def types are not arbitrary
}
///|
pub impl @quickcheck.Arbitrary for RefType with fn arbitrary(size, st) {
let nullable = (st.next_uint() & 1) == 1
let want_exact = (st.next_uint() & 1) == 1
let ht : HeapType = @quickcheck.Arbitrary::arbitrary(size, st)
match ht {
AbsHeapTypeHeapType(abs) if nullable => RefType::abs(abs)
AbsHeapTypeHeapType(_) => RefType::new(nullable, ht, exact=false)
_ => RefType::new(nullable, ht, exact=want_exact)
}
}
///|
pub impl @quickcheck.Arbitrary for ValType with fn arbitrary(size, st) {
match st.next_uint() % 3 {
0 => NumTypeValType(@quickcheck.Arbitrary::arbitrary(size, st))
1 => VecTypeValType
2 => RefTypeValType(@quickcheck.Arbitrary::arbitrary(size, st))
_ => VecTypeValType
}
}
///|
pub impl @quickcheck.Arbitrary for TypeIdx with fn arbitrary(_, st) {
TypeIdx(st.next_uint())
// recursive indexes are not arbitrary
}
///|
pub impl @quickcheck.Arbitrary for LaneIdx with fn arbitrary(_, state) {
let b : Byte = (state.next_uint() % 16).to_byte()
LaneIdx(b)
}
///|
pub impl @quickcheck.Arbitrary for SubType with fn arbitrary(t, st) {
if st.next_uint() % 2 == 1 {
SubType(
st.next_uint() % 2 == 1,
array_of_arbitrary(1, t, st),
TypeMetadata::new(),
@quickcheck.Arbitrary::arbitrary(t, st),
)
} else {
CompTypeSubType(
TypeMetadata::new(),
@quickcheck.Arbitrary::arbitrary(t, st),
)
}
}
///|
pub impl @quickcheck.Arbitrary for DefType with fn arbitrary(t, state) {
let s = @quickcheck.Arbitrary::arbitrary(t, state)
match s {
SingleRecType(_) => DefType(s, 0)
GroupRecType(g) => {
let idx = state.next_uint() % g.length().reinterpret_as_uint()
DefType(s, idx)
}
}
}
///|
pub impl @quickcheck.Arbitrary for Limits with fn arbitrary(_, state) {
if (state.next_uint() & 1) == 1 {
if (state.next_uint() & 1) == 1 {
I32Limits(state.next_uint(), None)
} else {
let a : UInt = state.next_uint()
let b : UInt = state.next_uint()
let min = if a > b { b } else { a }
let max = if a > b { a } else { b }
I32Limits(min, Some(max))
}
} else if (state.next_uint() & 1) == 1 {
I64Limits(state.next_uint64(), None)
} else {
let a : UInt64 = state.next_uint64()
let b : UInt64 = state.next_uint64()
let min = if a > b { b } else { a }
let max = if a > b { a } else { b }
I64Limits(min, Some(max))
}
}
///|
pub impl @quickcheck.Arbitrary for Elem with fn arbitrary(size, state) {
match state.next_uint() % 8 {
// 0x00: Active(table 0) + FuncsElemKind
0 => {
let expr = @quickcheck.Arbitrary::arbitrary(size, state)
let funcs = array_of_arbitrary(5, size, state)
Elem(Active(TableIdx(0), expr), FuncsElemKind(funcs))
}
// 0x01: Passive + FuncsElemKind
1 => {
let funcs = array_of_arbitrary(5, size, state)
Elem(Passive, FuncsElemKind(funcs))
}
// 0x02: Active(any table) + FuncsElemKind
2 => {
let ti : TableIdx = @quickcheck.Arbitrary::arbitrary(size, state)
let expr = @quickcheck.Arbitrary::arbitrary(size, state)
let funcs = array_of_arbitrary(5, size, state)
Elem(Active(ti, expr), FuncsElemKind(funcs))
}
// 0x03: Declarative + FuncsElemKind
3 => {
let funcs = array_of_arbitrary(5, size, state)
Elem(Declarative, FuncsElemKind(funcs))
}
// 0x04: Active(table 0) + FuncExprsElemKind
4 => {
let expr = @quickcheck.Arbitrary::arbitrary(size, state)
let exprs = array_of_arbitrary(3, size, state)
Elem(Active(TableIdx(0), expr), FuncExprsElemKind(exprs))
}
// 0x05: Passive + TypedExprsElemKind (covers FuncExprsElemKind too)
5 => {
let rt : RefType = @quickcheck.Arbitrary::arbitrary(size, state)
let exprs = array_of_arbitrary(3, size, state)
Elem(Passive, TypedExprsElemKind(rt, exprs))
}
// 0x06: Active(any table) + FuncExprsElemKind
6 => {
let ti : TableIdx = @quickcheck.Arbitrary::arbitrary(size, state)
let expr = @quickcheck.Arbitrary::arbitrary(size, state)
let exprs = array_of_arbitrary(3, size, state)
Elem(Active(ti, expr), FuncExprsElemKind(exprs))
}
// 0x07: Declarative + TypedExprsElemKind
_ => {
let rt : RefType = @quickcheck.Arbitrary::arbitrary(size, state)
let exprs = array_of_arbitrary(3, size, state)
Elem(Declarative, TypedExprsElemKind(rt, exprs))
}
}
}
///|
pub impl @quickcheck.Arbitrary for Expr with fn arbitrary(t, state) {
Expr([
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
])
}
///|
pub impl @quickcheck.Arbitrary for LocalRun with fn arbitrary(t, state) {
let count = state.next_positive_int() % 3 + 1
LocalRun::new(
count.reinterpret_as_uint(),
@quickcheck.Arbitrary::arbitrary(t, state),
)
}
///|
pub impl @quickcheck.Arbitrary for Locals with fn arbitrary(t, state) {
let runs : Array[LocalRun] = []
let count = state.next_positive_int() % 4 + 1
let mut remaining = count
while remaining > 0 {
runs.push(@quickcheck.Arbitrary::arbitrary(t, state))
remaining = remaining - 1
}
Locals::new(runs)
}
///|
pub impl @quickcheck.Arbitrary for Func with fn arbitrary(t, state) {
Func(
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
)
}
///|
pub impl @quickcheck.Arbitrary for Data with fn arbitrary(t, state) {
let size = state.next_positive_int() % 10 + 1
Data(
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(size, state),
)
}
///|
pub impl @quickcheck.Arbitrary for Name with fn arbitrary(_, state) {
let count = state.next_positive_int() % 5
let sb = StringBuilder::new(size_hint=count)
let mut remaining = count
let mut i = state.next_positive_int() % 91799
while remaining > 0 {
if (i >= 32 && i <= 126) ||
(i >= 160 && i <= 172) ||
(i >= 174 && i <= 887) ||
(i >= 890 && i <= 895) ||
(i >= 900 && i <= 906) ||
(i >= 908 && i <= 908) ||
(i >= 910 && i <= 929) ||
(i >= 931 && i <= 1327) ||
(i >= 1329 && i <= 1366) ||
(i >= 1369 && i <= 1418) ||
(i >= 1421 && i <= 1423) ||
(i >= 1425 && i <= 1479) ||
(i >= 1488 && i <= 1514) ||
(i >= 1519 && i <= 1524) ||
(i >= 1542 && i <= 1563) ||
(i >= 1565 && i <= 1756) ||
(i >= 1758 && i <= 1805) ||
(i >= 1808 && i <= 1866) ||
(i >= 1869 && i <= 1969) ||
(i >= 1984 && i <= 2042) ||
(i >= 2045 && i <= 2093) ||
(i >= 2096 && i <= 2110) ||
(i >= 2112 && i <= 2139) ||
(i >= 2142 && i <= 2142) ||
(i >= 2144 && i <= 2154) ||
(i >= 2160 && i <= 2191) ||
(i >= 2199 && i <= 2273) ||
(i >= 2275 && i <= 2435) ||
(i >= 2437 && i <= 2444) ||
(i >= 2447 && i <= 2448) ||
(i >= 2451 && i <= 2472) ||
(i >= 2474 && i <= 2480) ||
(i >= 2482 && i <= 2482) ||
(i >= 2486 && i <= 2489) ||
(i >= 2492 && i <= 2500) ||
(i >= 2503 && i <= 2504) ||
(i >= 2507 && i <= 2510) ||
(i >= 2519 && i <= 2519) ||
(i >= 2524 && i <= 2525) ||
(i >= 2527 && i <= 2531) ||
(i >= 2534 && i <= 2558) ||
(i >= 2561 && i <= 2563) ||
(i >= 2565 && i <= 2570) ||
(i >= 2575 && i <= 2576) ||
(i >= 2579 && i <= 2600) ||
(i >= 2602 && i <= 2608) ||
(i >= 2610 && i <= 2611) ||
(i >= 2613 && i <= 2614) ||
(i >= 2616 && i <= 2617) ||
(i >= 2620 && i <= 2620) ||
(i >= 2622 && i <= 2626) ||
(i >= 2631 && i <= 2632) ||
(i >= 2635 && i <= 2637) ||
(i >= 2641 && i <= 2641) ||
(i >= 2649 && i <= 2652) ||
(i >= 2654 && i <= 2654) ||
(i >= 2662 && i <= 2678) ||
(i >= 2689 && i <= 2691) ||
(i >= 2693 && i <= 2701) ||
(i >= 2703 && i <= 2705) ||
(i >= 2707 && i <= 2728) ||
(i >= 2730 && i <= 2736) ||
(i >= 2738 && i <= 2739) ||
(i >= 2741 && i <= 2745) ||
(i >= 2748 && i <= 2757) ||
(i >= 2759 && i <= 2761) ||
(i >= 2763 && i <= 2765) ||
(i >= 2768 && i <= 2768) ||
(i >= 2784 && i <= 2787) ||
(i >= 2790 && i <= 2801) ||
(i >= 2809 && i <= 2815) ||
(i >= 2817 && i <= 2819) ||
(i >= 2821 && i <= 2828) ||
(i >= 2831 && i <= 2832) ||
(i >= 2835 && i <= 2856) ||
(i >= 2858 && i <= 2864) ||
(i >= 2866 && i <= 2867) ||
(i >= 2869 && i <= 2873) ||
(i >= 2876 && i <= 2884) ||
(i >= 2887 && i <= 2888) ||
(i >= 2891 && i <= 2893) ||
(i >= 2901 && i <= 2903) ||
(i >= 2908 && i <= 2909) ||
(i >= 2911 && i <= 2915) ||
(i >= 2918 && i <= 2935) ||
(i >= 2946 && i <= 2947) ||
(i >= 2949 && i <= 2954) ||
(i >= 2958 && i <= 2960) ||
(i >= 2962 && i <= 2965) ||
(i >= 2969 && i <= 2970) ||
(i >= 2972 && i <= 2972) ||
(i >= 2974 && i <= 2975) ||
(i >= 2979 && i <= 2980) ||
(i >= 2984 && i <= 2986) ||
(i >= 2990 && i <= 3001) ||
(i >= 3006 && i <= 3010) ||
(i >= 3014 && i <= 3016) ||
(i >= 3018 && i <= 3021) ||
(i >= 3024 && i <= 3024) ||
(i >= 3031 && i <= 3031) ||
(i >= 3046 && i <= 3066) ||
(i >= 3072 && i <= 3084) ||
(i >= 3086 && i <= 3088) ||
(i >= 3090 && i <= 3112) ||
(i >= 3114 && i <= 3129) ||
(i >= 3132 && i <= 3140) ||
(i >= 3142 && i <= 3144) ||
(i >= 3146 && i <= 3149) ||
(i >= 3157 && i <= 3158) ||
(i >= 3160 && i <= 3162) ||
(i >= 3164 && i <= 3165) ||
(i >= 3168 && i <= 3171) ||
(i >= 3174 && i <= 3183) ||
(i >= 3191 && i <= 3212) ||
(i >= 3214 && i <= 3216) ||
(i >= 3218 && i <= 3240) ||
(i >= 3242 && i <= 3251) ||
(i >= 3253 && i <= 3257) ||
(i >= 3260 && i <= 3268) ||
(i >= 3270 && i <= 3272) ||
(i >= 3274 && i <= 3277) ||
(i >= 3285 && i <= 3286) ||
(i >= 3292 && i <= 3294) ||
(i >= 3296 && i <= 3299) ||
(i >= 3302 && i <= 3311) ||
(i >= 3313 && i <= 3315) ||
(i >= 3328 && i <= 3340) ||
(i >= 3342 && i <= 3344) ||
(i >= 3346 && i <= 3396) ||
(i >= 3398 && i <= 3400) ||
(i >= 3402 && i <= 3407) ||
(i >= 3412 && i <= 3427) ||
(i >= 3430 && i <= 3455) ||
(i >= 3457 && i <= 3459) ||
(i >= 3461 && i <= 3478) ||
(i >= 3482 && i <= 3505) ||
(i >= 3507 && i <= 3515) ||
(i >= 3517 && i <= 3517) ||
(i >= 3520 && i <= 3526) ||
(i >= 3530 && i <= 3530) ||
(i >= 3535 && i <= 3540) ||
(i >= 3542 && i <= 3542) ||
(i >= 3544 && i <= 3551) ||
(i >= 3558 && i <= 3567) ||
(i >= 3570 && i <= 3572) ||
(i >= 3585 && i <= 3642) ||
(i >= 3647 && i <= 3675) ||
(i >= 3713 && i <= 3714) ||
(i >= 3716 && i <= 3716) ||
(i >= 3718 && i <= 3722) ||
(i >= 3724 && i <= 3747) ||
(i >= 3749 && i <= 3749) ||
(i >= 3751 && i <= 3773) ||
(i >= 3776 && i <= 3780) ||
(i >= 3782 && i <= 3782) ||
(i >= 3784 && i <= 3790) ||
(i >= 3792 && i <= 3801) ||
(i >= 3804 && i <= 3807) ||
(i >= 3840 && i <= 3911) ||
(i >= 3913 && i <= 3948) ||
(i >= 3953 && i <= 3991) ||
(i >= 3993 && i <= 4028) ||
(i >= 4030 && i <= 4044) ||
(i >= 4046 && i <= 4058) ||
(i >= 4096 && i <= 4293) ||
(i >= 4295 && i <= 4295) ||
(i >= 4301 && i <= 4301) ||
(i >= 4304 && i <= 4680) ||
(i >= 4682 && i <= 4685) ||
(i >= 4688 && i <= 4694) ||
(i >= 4696 && i <= 4696) ||
(i >= 4698 && i <= 4701) ||
(i >= 4704 && i <= 4744) ||
(i >= 4746 && i <= 4749) ||
(i >= 4752 && i <= 4784) ||
(i >= 4786 && i <= 4789) ||
(i >= 4792 && i <= 4798) ||
(i >= 4800 && i <= 4800) ||
(i >= 4802 && i <= 4805) ||
(i >= 4808 && i <= 4822) ||
(i >= 4824 && i <= 4880) ||
(i >= 4882 && i <= 4885) ||
(i >= 4888 && i <= 4954) ||
(i >= 4957 && i <= 4988) ||
(i >= 4992 && i <= 5017) ||
(i >= 5024 && i <= 5109) ||
(i >= 5112 && i <= 5117) ||
(i >= 5120 && i <= 5788) ||
(i >= 5792 && i <= 5880) ||
(i >= 5888 && i <= 5909) ||
(i >= 5919 && i <= 5942) ||
(i >= 5952 && i <= 5971) ||
(i >= 5984 && i <= 5996) ||
(i >= 5998 && i <= 6000) ||
(i >= 6002 && i <= 6003) ||
(i >= 6016 && i <= 6109) ||
(i >= 6112 && i <= 6121) ||
(i >= 6128 && i <= 6137) ||
(i >= 6144 && i <= 6157) ||
(i >= 6159 && i <= 6169) ||
(i >= 6176 && i <= 6264) ||
(i >= 6272 && i <= 6314) ||
(i >= 6320 && i <= 6389) ||
(i >= 6400 && i <= 6430) ||
(i >= 6432 && i <= 6443) ||
(i >= 6448 && i <= 6459) ||
(i >= 6464 && i <= 6464) ||
(i >= 6468 && i <= 6509) ||
(i >= 6512 && i <= 6516) ||
(i >= 6528 && i <= 6571) ||
(i >= 6576 && i <= 6601) ||
(i >= 6608 && i <= 6618) ||
(i >= 6622 && i <= 6683) ||
(i >= 6686 && i <= 6750) ||
(i >= 6752 && i <= 6780) ||
(i >= 6783 && i <= 6793) ||
(i >= 6800 && i <= 6809) ||
(i >= 6816 && i <= 6829) ||
(i >= 6832 && i <= 6877) ||
(i >= 6880 && i <= 6891) ||
(i >= 6912 && i <= 6988) ||
(i >= 6990 && i <= 7155) ||
(i >= 7164 && i <= 7223) ||
(i >= 7227 && i <= 7241) ||
(i >= 7245 && i <= 7306) ||
(i >= 7312 && i <= 7354) ||
(i >= 7357 && i <= 7367) ||
(i >= 7376 && i <= 7418) ||
(i >= 7424 && i <= 7957) ||
(i >= 7960 && i <= 7965) ||
(i >= 7968 && i <= 8005) ||
(i >= 8008 && i <= 8013) ||
(i >= 8016 && i <= 8023) ||
(i >= 8025 && i <= 8025) ||
(i >= 8027 && i <= 8027) ||
(i >= 8029 && i <= 8029) ||
(i >= 8031 && i <= 8061) ||
(i >= 8064 && i <= 8116) ||
(i >= 8118 && i <= 8132) ||
(i >= 8134 && i <= 8147) ||
(i >= 8150 && i <= 8155) ||
(i >= 8157 && i <= 8175) ||
(i >= 8178 && i <= 8180) ||
(i >= 8182 && i <= 8190) ||
(i >= 8192 && i <= 8202) ||
(i >= 8208 && i <= 8233) ||
(i >= 8239 && i <= 8287) ||
(i >= 8304 && i <= 8305) ||
(i >= 8308 && i <= 8334) ||
(i >= 8336 && i <= 8348) ||
(i >= 8352 && i <= 8385) ||
(i >= 8400 && i <= 8432) ||
(i >= 8448 && i <= 8587) ||
(i >= 8592 && i <= 9257) ||
(i >= 9280 && i <= 9290) ||
(i >= 9312 && i <= 11123) ||
(i >= 11126 && i <= 11507) ||
(i >= 11513 && i <= 11557) ||
(i >= 11559 && i <= 11559) ||
(i >= 11565 && i <= 11565) ||
(i >= 11568 && i <= 11623) ||
(i >= 11631 && i <= 11632) ||
(i >= 11647 && i <= 11670) ||
(i >= 11680 && i <= 11686) ||
(i >= 11688 && i <= 11694) ||
(i >= 11696 && i <= 11702) ||
(i >= 11704 && i <= 11710) ||
(i >= 11712 && i <= 11718) ||
(i >= 11720 && i <= 11726) ||
(i >= 11728 && i <= 11734) ||
(i >= 11736 && i <= 11742) ||
(i >= 11744 && i <= 11869) ||
(i >= 11904 && i <= 11929) ||
(i >= 11931 && i <= 12019) ||
(i >= 12032 && i <= 12245) ||
(i >= 12272 && i <= 12351) ||
(i >= 12353 && i <= 12438) ||
(i >= 12441 && i <= 12543) ||
(i >= 12549 && i <= 12591) ||
(i >= 12593 && i <= 12686) ||
(i >= 12688 && i <= 12773) ||
(i >= 12783 && i <= 12830) ||
(i >= 12832 && i <= 42124) ||
(i >= 42128 && i <= 42182) ||
(i >= 42192 && i <= 42539) ||
(i >= 42560 && i <= 42743) ||
(i >= 42752 && i <= 42972) ||
(i >= 42993 && i <= 43052) ||
(i >= 43056 && i <= 43065) ||
(i >= 43072 && i <= 43127) ||
(i >= 43136 && i <= 43205) ||
(i >= 43214 && i <= 43225) ||
(i >= 43232 && i <= 43347) ||
(i >= 43359 && i <= 43388) ||
(i >= 43392 && i <= 43469) ||
(i >= 43471 && i <= 43481) ||
(i >= 43486 && i <= 43518) ||
(i >= 43520 && i <= 43574) ||
(i >= 43584 && i <= 43597) ||
(i >= 43600 && i <= 43609) ||
(i >= 43612 && i <= 43714) ||
(i >= 43739 && i <= 43766) ||
(i >= 43777 && i <= 43782) ||
(i >= 43785 && i <= 43790) ||
(i >= 43793 && i <= 43798) ||
(i >= 43808 && i <= 43814) ||
(i >= 43816 && i <= 43822) ||
(i >= 43824 && i <= 43883) ||
(i >= 43888 && i <= 44013) ||
(i >= 44016 && i <= 44025) ||
(i >= 44032 && i <= 55203) ||
(i >= 55216 && i <= 55238) ||
(i >= 55243 && i <= 55291) ||
(i >= 63744 && i <= 64109) ||
(i >= 64112 && i <= 64217) ||
(i >= 64256 && i <= 64262) ||
(i >= 64275 && i <= 64279) ||
(i >= 64285 && i <= 64310) ||
(i >= 64312 && i <= 64316) ||
(i >= 64318 && i <= 64318) ||
(i >= 64320 && i <= 64321) ||
(i >= 64323 && i <= 64324) ||
(i >= 64326 && i <= 64975) ||
(i >= 65008 && i <= 65049) ||
(i >= 65056 && i <= 65106) ||
(i >= 65108 && i <= 65126) ||
(i >= 65128 && i <= 65131) ||
(i >= 65136 && i <= 65140) ||
(i >= 65142 && i <= 65276) ||
(i >= 65281 && i <= 65470) ||
(i >= 65474 && i <= 65479) ||
(i >= 65482 && i <= 65487) ||
(i >= 65490 && i <= 65495) ||
(i >= 65498 && i <= 65500) ||
(i >= 65504 && i <= 65510) ||
(i >= 65512 && i <= 65518) ||
(i >= 65532 && i <= 65533) ||
(i >= 65536 && i <= 65547) ||
(i >= 65549 && i <= 65574) ||
(i >= 65576 && i <= 65594) ||
(i >= 65596 && i <= 65597) ||
(i >= 65599 && i <= 65613) ||
(i >= 65616 && i <= 65629) ||
(i >= 65664 && i <= 65786) ||
(i >= 65792 && i <= 65794) ||
(i >= 65799 && i <= 65843) ||
(i >= 65847 && i <= 65934) ||
(i >= 65936 && i <= 65948) ||
(i >= 65952 && i <= 65952) ||
(i >= 66000 && i <= 66045) ||
(i >= 66176 && i <= 66204) ||
(i >= 66208 && i <= 66256) ||
(i >= 66272 && i <= 66299) ||
(i >= 66304 && i <= 66339) ||
(i >= 66349 && i <= 66378) ||
(i >= 66384 && i <= 66426) ||
(i >= 66432 && i <= 66461) ||
(i >= 66463 && i <= 66499) ||
(i >= 66504 && i <= 66517) ||
(i >= 66560 && i <= 66717) ||
(i >= 66720 && i <= 66729) ||
(i >= 66736 && i <= 66771) ||
(i >= 66776 && i <= 66811) ||
(i >= 66816 && i <= 66855) ||
(i >= 66864 && i <= 66915) ||
(i >= 66927 && i <= 66938) ||
(i >= 66940 && i <= 66954) ||
(i >= 66956 && i <= 66962) ||
(i >= 66964 && i <= 66965) ||
(i >= 66967 && i <= 66977) ||
(i >= 66979 && i <= 66993) ||
(i >= 66995 && i <= 67001) ||
(i >= 67003 && i <= 67004) ||
(i >= 67008 && i <= 67059) ||
(i >= 67072 && i <= 67382) ||
(i >= 67392 && i <= 67413) ||
(i >= 67424 && i <= 67431) ||
(i >= 67456 && i <= 67461) ||
(i >= 67463 && i <= 67504) ||
(i >= 67506 && i <= 67514) ||
(i >= 67584 && i <= 67589) ||
(i >= 67592 && i <= 67592) ||
(i >= 67594 && i <= 67637) ||
(i >= 67639 && i <= 67640) ||
(i >= 67644 && i <= 67644) ||
(i >= 67647 && i <= 67669) ||
(i >= 67671 && i <= 67742) ||
(i >= 67751 && i <= 67759) ||
(i >= 67808 && i <= 67826) ||
(i >= 67828 && i <= 67829) ||
(i >= 67835 && i <= 67867) ||
(i >= 67871 && i <= 67897) ||
(i >= 67903 && i <= 67929) ||
(i >= 67968 && i <= 68023) ||
(i >= 68028 && i <= 68047) ||
(i >= 68050 && i <= 68099) ||
(i >= 68101 && i <= 68102) ||
(i >= 68108 && i <= 68115) ||
(i >= 68117 && i <= 68119) ||
(i >= 68121 && i <= 68149) ||
(i >= 68152 && i <= 68154) ||
(i >= 68159 && i <= 68168) ||
(i >= 68176 && i <= 68184) ||
(i >= 68192 && i <= 68255) ||
(i >= 68288 && i <= 68326) ||
(i >= 68331 && i <= 68342) ||
(i >= 68352 && i <= 68405) ||
(i >= 68409 && i <= 68437) ||
(i >= 68440 && i <= 68466) ||
(i >= 68472 && i <= 68497) ||
(i >= 68505 && i <= 68508) ||
(i >= 68521 && i <= 68527) ||
(i >= 68608 && i <= 68680) ||
(i >= 68736 && i <= 68786) ||
(i >= 68800 && i <= 68850) ||
(i >= 68858 && i <= 68903) ||
(i >= 68912 && i <= 68921) ||
(i >= 68928 && i <= 68965) ||
(i >= 68969 && i <= 68997) ||
(i >= 69006 && i <= 69007) ||
(i >= 69216 && i <= 69246) ||
(i >= 69248 && i <= 69289) ||
(i >= 69291 && i <= 69293) ||
(i >= 69296 && i <= 69297) ||
(i >= 69314 && i <= 69319) ||
(i >= 69328 && i <= 69336) ||
(i >= 69370 && i <= 69415) ||
(i >= 69424 && i <= 69465) ||
(i >= 69488 && i <= 69513) ||
(i >= 69552 && i <= 69579) ||
(i >= 69600 && i <= 69622) ||
(i >= 69632 && i <= 69709) ||
(i >= 69714 && i <= 69749) ||
(i >= 69759 && i <= 69820) ||
(i >= 69822 && i <= 69826) ||
(i >= 69840 && i <= 69864) ||
(i >= 69872 && i <= 69881) ||
(i >= 69888 && i <= 69940) ||
(i >= 69942 && i <= 69959) ||
(i >= 69968 && i <= 70006) ||
(i >= 70016 && i <= 70111) ||
(i >= 70113 && i <= 70132) ||
(i >= 70144 && i <= 70161) ||
(i >= 70163 && i <= 70209) ||
(i >= 70272 && i <= 70278) ||
(i >= 70280 && i <= 70280) ||
(i >= 70282 && i <= 70285) ||
(i >= 70287 && i <= 70301) ||
(i >= 70303 && i <= 70313) ||
(i >= 70320 && i <= 70378) ||
(i >= 70384 && i <= 70393) ||
(i >= 70400 && i <= 70403) ||
(i >= 70405 && i <= 70412) ||
(i >= 70415 && i <= 70416) ||
(i >= 70419 && i <= 70440) ||
(i >= 70442 && i <= 70448) ||
(i >= 70450 && i <= 70451) ||
(i >= 70453 && i <= 70457) ||
(i >= 70459 && i <= 70468) ||
(i >= 70471 && i <= 70472) ||
(i >= 70475 && i <= 70477) ||
(i >= 70480 && i <= 70480) ||
(i >= 70487 && i <= 70487) ||
(i >= 70493 && i <= 70499) ||
(i >= 70502 && i <= 70508) ||
(i >= 70512 && i <= 70516) ||
(i >= 70528 && i <= 70537) ||
(i >= 70539 && i <= 70539) ||
(i >= 70542 && i <= 70542) ||
(i >= 70544 && i <= 70581) ||
(i >= 70583 && i <= 70592) ||
(i >= 70594 && i <= 70594) ||
(i >= 70597 && i <= 70597) ||
(i >= 70599 && i <= 70602) ||
(i >= 70604 && i <= 70613) ||
(i >= 70615 && i <= 70616) ||
(i >= 70625 && i <= 70626) ||
(i >= 70656 && i <= 70747) ||
(i >= 70749 && i <= 70753) ||
(i >= 70784 && i <= 70855) ||
(i >= 70864 && i <= 70873) ||
(i >= 71040 && i <= 71093) ||
(i >= 71096 && i <= 71133) ||
(i >= 71168 && i <= 71236) ||
(i >= 71248 && i <= 71257) ||
(i >= 71264 && i <= 71276) ||
(i >= 71296 && i <= 71353) ||
(i >= 71360 && i <= 71369) ||
(i >= 71376 && i <= 71395) ||
(i >= 71424 && i <= 71450) ||
(i >= 71453 && i <= 71467) ||
(i >= 71472 && i <= 71494) ||
(i >= 71680 && i <= 71739) ||
(i >= 71840 && i <= 71922) ||
(i >= 71935 && i <= 71942) ||
(i >= 71945 && i <= 71945) ||
(i >= 71948 && i <= 71955) ||
(i >= 71957 && i <= 71958) ||
(i >= 71960 && i <= 71989) ||
(i >= 71991 && i <= 71992) ||
(i >= 71995 && i <= 72006) ||
(i >= 72016 && i <= 72025) ||
(i >= 72096 && i <= 72103) ||
(i >= 72106 && i <= 72151) ||
(i >= 72154 && i <= 72164) ||
(i >= 72192 && i <= 72263) ||
(i >= 72272 && i <= 72354) ||
(i >= 72368 && i <= 72440) ||
(i >= 72448 && i <= 72457) ||
(i >= 72544 && i <= 72551) ||
(i >= 72640 && i <= 72673) ||
(i >= 72688 && i <= 72697) ||
(i >= 72704 && i <= 72712) ||
(i >= 72714 && i <= 72758) ||
(i >= 72760 && i <= 72773) ||
(i >= 72784 && i <= 72812) ||
(i >= 72816 && i <= 72847) ||
(i >= 72850 && i <= 72871) ||
(i >= 72873 && i <= 72886) ||
(i >= 72960 && i <= 72966) ||
(i >= 72968 && i <= 72969) ||
(i >= 72971 && i <= 73014) ||
(i >= 73018 && i <= 73018) ||
(i >= 73020 && i <= 73021) ||
(i >= 73023 && i <= 73031) ||
(i >= 73040 && i <= 73049) ||
(i >= 73056 && i <= 73061) ||
(i >= 73063 && i <= 73064) ||
(i >= 73066 && i <= 73102) ||
(i >= 73104 && i <= 73105) ||
(i >= 73107 && i <= 73112) ||
(i >= 73120 && i <= 73129) ||
(i >= 73136 && i <= 73179) ||
(i >= 73184 && i <= 73193) ||
(i >= 73440 && i <= 73464) ||
(i >= 73472 && i <= 73488) ||
(i >= 73490 && i <= 73530) ||
(i >= 73534 && i <= 73562) ||
(i >= 73648 && i <= 73648) ||
(i >= 73664 && i <= 73713) ||
(i >= 73727 && i <= 74649) ||
(i >= 74752 && i <= 74862) ||
(i >= 74864 && i <= 74868) ||
(i >= 74880 && i <= 75075) ||
(i >= 77712 && i <= 77810) ||
(i >= 77824 && i <= 78895) ||
(i >= 78912 && i <= 78933) ||
(i >= 78944 && i <= 82938) ||
(i >= 82944 && i <= 83526) ||
(i >= 90368 && i <= 90425) ||
(i >= 92160 && i <= 92728) ||
(i >= 92736 && i <= 92766) ||
(i >= 92768 && i <= 92777) ||
(i >= 92782 && i <= 92862) ||
(i >= 92864 && i <= 92873) ||
(i >= 92880 && i <= 92909) ||
(i >= 92912 && i <= 92917) ||
(i >= 92928 && i <= 92997) ||
(i >= 93008 && i <= 93017) ||
(i >= 93019 && i <= 93025) ||
(i >= 93027 && i <= 93047) ||
(i >= 93053 && i <= 93071) ||
(i >= 93504 && i <= 93561) ||
(i >= 93760 && i <= 93850) ||
(i >= 93856 && i <= 93880) ||
(i >= 93883 && i <= 93907) ||
(i >= 93952 && i <= 94026) ||
(i >= 94031 && i <= 94087) ||
(i >= 94095 && i <= 94111) ||
(i >= 94176 && i <= 94180) ||
(i >= 94192 && i <= 94198) ||
(i >= 94208 && i <= 101589) ||
(i >= 101631 && i <= 101662) ||
(i >= 101760 && i <= 101874) ||
(i >= 110576 && i <= 110579) ||
(i >= 110581 && i <= 110587) ||
(i >= 110589 && i <= 110590) ||
(i >= 110592 && i <= 110882) ||
(i >= 110898 && i <= 110898) ||
(i >= 110928 && i <= 110930) ||
(i >= 110933 && i <= 110933) ||
(i >= 110948 && i <= 110951) ||
(i >= 110960 && i <= 111355) ||
(i >= 113664 && i <= 113770) ||
(i >= 113776 && i <= 113788) ||
(i >= 113792 && i <= 113800) ||
(i >= 113808 && i <= 113817) ||
(i >= 113820 && i <= 113823) ||
(i >= 117760 && i <= 118012) ||
(i >= 118016 && i <= 118451) ||
(i >= 118458 && i <= 118480) ||
(i >= 118496 && i <= 118512) ||
(i >= 118528 && i <= 118573) ||
(i >= 118576 && i <= 118598) ||
(i >= 118608 && i <= 118723) ||
(i >= 118784 && i <= 119029) ||
(i >= 119040 && i <= 119078) ||
(i >= 119081 && i <= 119154) ||
(i >= 119163 && i <= 119274) ||
(i >= 119296 && i <= 119365) ||
(i >= 119488 && i <= 119507) ||
(i >= 119520 && i <= 119539) ||
(i >= 119552 && i <= 119638) ||
(i >= 119648 && i <= 119672) ||
(i >= 119808 && i <= 119892) ||
(i >= 119894 && i <= 119964) ||
(i >= 119966 && i <= 119967) ||
(i >= 119970 && i <= 119970) ||
(i >= 119973 && i <= 119974) ||
(i >= 119977 && i <= 119980) ||
(i >= 119982 && i <= 119993) ||
(i >= 119995 && i <= 119995) ||
(i >= 119997 && i <= 120003) ||
(i >= 120005 && i <= 120069) ||
(i >= 120071 && i <= 120074) ||
(i >= 120077 && i <= 120084) ||
(i >= 120086 && i <= 120092) ||
(i >= 120094 && i <= 120121) ||
(i >= 120123 && i <= 120126) ||
(i >= 120128 && i <= 120132) ||
(i >= 120134 && i <= 120134) ||
(i >= 120138 && i <= 120144) ||
(i >= 120146 && i <= 120485) ||
(i >= 120488 && i <= 120779) ||
(i >= 120782 && i <= 121483) ||
(i >= 121499 && i <= 121503) ||
(i >= 121505 && i <= 121519) ||
(i >= 122624 && i <= 122654) ||
(i >= 122661 && i <= 122666) ||
(i >= 122880 && i <= 122886) ||
(i >= 122888 && i <= 122904) ||
(i >= 122907 && i <= 122913) ||
(i >= 122915 && i <= 122916) ||
(i >= 122918 && i <= 122922) ||
(i >= 122928 && i <= 122989) ||
(i >= 123023 && i <= 123023) ||
(i >= 123136 && i <= 123180) ||
(i >= 123184 && i <= 123197) ||
(i >= 123200 && i <= 123209) ||
(i >= 123214 && i <= 123215) ||
(i >= 123536 && i <= 123566) ||
(i >= 123584 && i <= 123641) ||
(i >= 123647 && i <= 123647) ||
(i >= 124112 && i <= 124153) ||
(i >= 124368 && i <= 124410) ||
(i >= 124415 && i <= 124415) ||
(i >= 124608 && i <= 124638) ||
(i >= 124640 && i <= 124661) ||
(i >= 124670 && i <= 124671) ||
(i >= 124896 && i <= 124902) ||
(i >= 124904 && i <= 124907) ||
(i >= 124909 && i <= 124910) ||
(i >= 124912 && i <= 124926) ||
(i >= 124928 && i <= 125124) ||
(i >= 125127 && i <= 125142) ||
(i >= 125184 && i <= 125259) ||
(i >= 125264 && i <= 125273) ||
(i >= 125278 && i <= 125279) ||
(i >= 126065 && i <= 126132) ||
(i >= 126209 && i <= 126269) ||
(i >= 126464 && i <= 126467) ||
(i >= 126469 && i <= 126495) ||
(i >= 126497 && i <= 126498) ||
(i >= 126500 && i <= 126500) ||
(i >= 126503 && i <= 126503) ||
(i >= 126505 && i <= 126514) ||
(i >= 126516 && i <= 126519) ||
(i >= 126521 && i <= 126521) ||
(i >= 126523 && i <= 126523) ||
(i >= 126530 && i <= 126530) ||
(i >= 126535 && i <= 126535) ||
(i >= 126537 && i <= 126537) ||
(i >= 126539 && i <= 126539) ||
(i >= 126541 && i <= 126543) ||
(i >= 126545 && i <= 126546) ||
(i >= 126548 && i <= 126548) ||
(i >= 126551 && i <= 126551) ||
(i >= 126553 && i <= 126553) ||
(i >= 126555 && i <= 126555) ||
(i >= 126557 && i <= 126557) ||
(i >= 126559 && i <= 126559) ||
(i >= 126561 && i <= 126562) ||
(i >= 126564 && i <= 126564) ||
(i >= 126567 && i <= 126570) ||
(i >= 126572 && i <= 126578) ||
(i >= 126580 && i <= 126583) ||
(i >= 126585 && i <= 126588) ||
(i >= 126590 && i <= 126590) ||
(i >= 126592 && i <= 126601) ||
(i >= 126603 && i <= 126619) ||
(i >= 126625 && i <= 126627) ||
(i >= 126629 && i <= 126633) ||
(i >= 126635 && i <= 126651) ||
(i >= 126704 && i <= 126705) ||
(i >= 126976 && i <= 127019) ||
(i >= 127024 && i <= 127123) ||
(i >= 127136 && i <= 127150) ||
(i >= 127153 && i <= 127167) ||
(i >= 127169 && i <= 127183) ||
(i >= 127185 && i <= 127221) ||
(i >= 127232 && i <= 127405) ||
(i >= 127462 && i <= 127490) ||
(i >= 127504 && i <= 127547) ||
(i >= 127552 && i <= 127560) ||
(i >= 127568 && i <= 127569) ||
(i >= 127584 && i <= 127589) ||
(i >= 127744 && i <= 128728) ||
(i >= 128732 && i <= 128748) ||
(i >= 128752 && i <= 128764) ||
(i >= 128768 && i <= 128985) ||
(i >= 128992 && i <= 129003) ||
(i >= 129008 && i <= 129008) ||
(i >= 129024 && i <= 129035) ||
(i >= 129040 && i <= 129095) ||
(i >= 129104 && i <= 129113) ||
(i >= 129120 && i <= 129159) ||
(i >= 129168 && i <= 129197) ||
(i >= 129200 && i <= 129211) ||
(i >= 129216 && i <= 129217) ||
(i >= 129232 && i <= 129240) ||
(i >= 129280 && i <= 129623) ||
(i >= 129632 && i <= 129645) ||
(i >= 129648 && i <= 129660) ||
(i >= 129664 && i <= 129674) ||
(i >= 129678 && i <= 129734) ||
(i >= 129736 && i <= 129736) ||
(i >= 129741 && i <= 129756) ||
(i >= 129759 && i <= 129770) ||
(i >= 129775 && i <= 129784) ||
(i >= 129792 && i <= 129938) ||
(i >= 129940 && i <= 130042) ||
(i >= 131072 && i <= 173791) ||
(i >= 173824 && i <= 178205) ||
(i >= 178208 && i <= 183981) ||
(i >= 183984 && i <= 191456) ||
(i >= 191472 && i <= 192093) ||
(i >= 194560 && i <= 195101) ||
(i >= 196608 && i <= 201546) ||
(i >= 201552 && i <= 210041) ||
(i >= 917760 && i <= 917999) {
sb.write_char(i.unsafe_to_char())
remaining = remaining - 1
}
i = state.next_positive_int() % 91799
}
Name(sb.to_string().to_string_view())
}
///|
pub impl @quickcheck.Arbitrary for MemArg with fn arbitrary(t, state) {
// Keep regular-memory alignments below the v131 memarg flag bits. Values
// through 8 still include semantically over-aligned negative-test cases.
MemArg(
U32(state.next_uint() % 9),
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
)
}
///|
pub impl @quickcheck.Arbitrary for Instruction with fn arbitrary(t, state) {
match state.next_uint() % 494 {
0 => Unreachable
1 => Nop
2 =>
Block(
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
)
3 =>
Loop(
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
)
4 =>
If(
@quickcheck.Arbitrary::arbitrary(t, state),
array_of_arbitrary(5, t, state),
if (state.next_uint() & 1) == 1 {
Some(array_of_arbitrary(5, t, state))
} else {
None
},
)
5 => Throw(@quickcheck.Arbitrary::arbitrary(t, state))
6 => ThrowRef
7 => Br(@quickcheck.Arbitrary::arbitrary(t, state))
8 => BrIf(@quickcheck.Arbitrary::arbitrary(t, state))
9 =>
BrTable(
array_of_arbitrary(3, t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
)
10 => Return
11 => Call(@quickcheck.Arbitrary::arbitrary(t, state))
12 =>
CallIndirect(
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
)
13 => ReturnCall(@quickcheck.Arbitrary::arbitrary(t, state))
14 =>
ReturnCallIndirect(
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
)
15 => CallRef(@quickcheck.Arbitrary::arbitrary(t, state))
16 => ReturnCallRef(@quickcheck.Arbitrary::arbitrary(t, state))
17 => Drop
18 =>
TryTable(
@quickcheck.Arbitrary::arbitrary(t, state),
array_of_arbitrary(4, t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
)
19 =>
Select(
if @quickcheck.Arbitrary::arbitrary(t, state) {
Some(array_of_arbitrary(4, t, state))
} else {
None
},
)
20 => LocalGet(@quickcheck.Arbitrary::arbitrary(t, state))
21 => LocalSet(@quickcheck.Arbitrary::arbitrary(t, state))
22 => LocalTee(@quickcheck.Arbitrary::arbitrary(t, state))
23 => GlobalGet(@quickcheck.Arbitrary::arbitrary(t, state))
24 => GlobalSet(@quickcheck.Arbitrary::arbitrary(t, state))
25 => TableGet(@quickcheck.Arbitrary::arbitrary(t, state))
26 => TableSet(@quickcheck.Arbitrary::arbitrary(t, state))
27 => I32Load(@quickcheck.Arbitrary::arbitrary(t, state))
28 => I64Load(@quickcheck.Arbitrary::arbitrary(t, state))
29 => F32Load(@quickcheck.Arbitrary::arbitrary(t, state))
30 => F64Load(@quickcheck.Arbitrary::arbitrary(t, state))
31 => I32Load8S(@quickcheck.Arbitrary::arbitrary(t, state))
32 => I32Load8U(@quickcheck.Arbitrary::arbitrary(t, state))
33 => I32Load16S(@quickcheck.Arbitrary::arbitrary(t, state))
34 => I32Load16U(@quickcheck.Arbitrary::arbitrary(t, state))
35 => I64Load8S(@quickcheck.Arbitrary::arbitrary(t, state))
36 => I64Load8U(@quickcheck.Arbitrary::arbitrary(t, state))
37 => I64Load16S(@quickcheck.Arbitrary::arbitrary(t, state))
38 => I64Load16U(@quickcheck.Arbitrary::arbitrary(t, state))
39 => I64Load32S(@quickcheck.Arbitrary::arbitrary(t, state))
40 => I64Load32U(@quickcheck.Arbitrary::arbitrary(t, state))
41 => I32Store(@quickcheck.Arbitrary::arbitrary(t, state))
42 => I64Store(@quickcheck.Arbitrary::arbitrary(t, state))
43 => F32Store(@quickcheck.Arbitrary::arbitrary(t, state))
44 => F64Store(@quickcheck.Arbitrary::arbitrary(t, state))
45 => I32Store8(@quickcheck.Arbitrary::arbitrary(t, state))
46 => I32Store16(@quickcheck.Arbitrary::arbitrary(t, state))
47 => I64Store8(@quickcheck.Arbitrary::arbitrary(t, state))
48 => I64Store16(@quickcheck.Arbitrary::arbitrary(t, state))
49 => I64Store32(@quickcheck.Arbitrary::arbitrary(t, state))
50 => MemorySize(@quickcheck.Arbitrary::arbitrary(t, state))
51 => MemoryGrow(@quickcheck.Arbitrary::arbitrary(t, state))
52 => I32Const(@quickcheck.Arbitrary::arbitrary(t, state))
53 => I64Const(@quickcheck.Arbitrary::arbitrary(t, state))
54 => F32Const(@quickcheck.Arbitrary::arbitrary(t, state))
55 => F64Const(@quickcheck.Arbitrary::arbitrary(t, state))
56 => I32Eqz
57 => I32Eq
58 => I32Ne
59 => I32LtS
60 => I32LtU
61 => I32GtS
62 => I32GtU
63 => I32LeS
64 => I32LeU
65 => I32GeS
66 => I32GeU
67 => I64Eqz
68 => I64Eq
69 => I64Ne
70 => I64LtS
71 => I64LtU
72 => I64GtS
73 => I64GtU
74 => I64LeS
75 => I64LeU
76 => I64GeS
77 => I64GeU
78 => F32Eq
79 => F32Ne
80 => F32Lt
81 => F32Gt
82 => F32Le
83 => F32Ge
84 => F64Eq
85 => F64Ne
86 => F64Lt
87 => F64Gt
88 => F64Le
89 => F64Ge
90 => I32Clz
91 => I32Ctz
92 => I32Popcnt
93 => I32Add
94 => I32Sub
95 => I32Mul
96 => I32DivS
97 => I32DivU
98 => I32RemS
99 => I32RemU
100 => I32And
101 => I32Or
102 => I32Xor
103 => I32Shl
104 => I32ShrS
105 => I32ShrU
106 => I32Rotl
107 => I32Rotr
108 => I64Clz
109 => I64Ctz
110 => I64Popcnt
111 => I64Add
112 => I64Sub
113 => I64Mul
114 => I64DivS
115 => I64DivU
116 => I64RemS
117 => I64RemU
118 => I64And
119 => I64Or
120 => I64Xor
121 => I64Shl
122 => I64ShrS
123 => I64ShrU
124 => I64Rotl
125 => I64Rotr
126 => F32Abs
127 => F32Neg
128 => F32Ceil
129 => F32Floor
130 => F32Trunc
131 => F32Nearest
132 => F32Sqrt
133 => F32Add
134 => F32Sub
135 => F32Mul
136 => F32Div
137 => F32Min
138 => F32Max
139 => F32Copysign
140 => F64Abs
141 => F64Neg
142 => F64Ceil
143 => F64Floor
144 => F64Trunc
145 => F64Nearest
146 => F64Sqrt
147 => F64Add
148 => F64Sub
149 => F64Mul
150 => F64Div
151 => F64Min
152 => F64Max
153 => F64Copysign
154 => I32WrapI64
155 => I32TruncF32S
156 => I32TruncF32U
157 => I32TruncF64S
158 => I32TruncF64U
159 => I64ExtendI32S
160 => I64ExtendI32U
161 => I64TruncF32S
162 => I64TruncF32U
163 => I64TruncF64S
164 => I64TruncF64U
165 => F32ConvertI32S
166 => F32ConvertI32U
167 => F32ConvertI64S
168 => F32ConvertI64U
169 => F32DemoteF64
170 => F64ConvertI32S
171 => F64ConvertI32U
172 => F64ConvertI64S
173 => F64ConvertI64U
174 => F64PromoteF32
175 => I32ReinterpretF32
176 => I64ReinterpretF64
177 => F32ReinterpretI32
178 => F64ReinterpretI64
179 => I32Extend8S
180 => I32Extend16S
181 => I64Extend8S
182 => I64Extend16S
183 => I64Extend32S
184 =>
Instruction::ref_null_type(@quickcheck.Arbitrary::arbitrary(t, state))
185 => RefIsNull
186 => RefFunc(@quickcheck.Arbitrary::arbitrary(t, state))
187 => RefEq
188 => RefAsNonNull
189 => BrOnNull(@quickcheck.Arbitrary::arbitrary(t, state))
190 => BrOnNonNull(@quickcheck.Arbitrary::arbitrary(t, state))
191 => StructNew(@quickcheck.Arbitrary::arbitrary(t, state))
192 => StructNewDefault(@quickcheck.Arbitrary::arbitrary(t, state))
193 =>
StructGet(
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
)
194 =>
StructGetS(
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
)
195 =>
StructGetU(
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
)
196 =>
StructSet(
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
)
197 => ArrayNew(@quickcheck.Arbitrary::arbitrary(t, state))
198 => ArrayNewDefault(@quickcheck.Arbitrary::arbitrary(t, state))
199 =>
ArrayNewFixed(
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
)
200 =>
ArrayNewData(
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
)
201 =>
ArrayNewElem(
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
)
202 => ArrayGet(@quickcheck.Arbitrary::arbitrary(t, state))
203 => ArrayGetS(@quickcheck.Arbitrary::arbitrary(t, state))
204 => ArrayGetU(@quickcheck.Arbitrary::arbitrary(t, state))
205 => ArraySet(@quickcheck.Arbitrary::arbitrary(t, state))
206 => ArrayLen
207 => ArrayFill(@quickcheck.Arbitrary::arbitrary(t, state))
208 =>
ArrayCopy(
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
)
209 =>
ArrayInitData(
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
)
210 =>
ArrayInitElem(
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
)
211 =>
RefTest(
@quickcheck.Arbitrary::arbitrary(t, state),
false,
@quickcheck.Arbitrary::arbitrary(t, state),
)
212 =>
RefCast(
@quickcheck.Arbitrary::arbitrary(t, state),
false,
@quickcheck.Arbitrary::arbitrary(t, state),
)
213 => {
let CastOp(source_nullable, target_nullable, _, _) : CastOp = @quickcheck.Arbitrary::arbitrary(
t, state,
)
BrOnCast(
@quickcheck.Arbitrary::arbitrary(t, state),
CastOp(source_nullable, target_nullable, false, false),
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
)
}
214 => {
let CastOp(source_nullable, target_nullable, _, _) : CastOp = @quickcheck.Arbitrary::arbitrary(
t, state,
)
BrOnCastFail(
@quickcheck.Arbitrary::arbitrary(t, state),
CastOp(source_nullable, target_nullable, false, false),
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
)
}
215 => AnyConvertExtern
216 => ExternConvertAny
217 => RefI31
218 => I31GetS
219 => I31GetU
220 => I32TruncSatF32S
221 => I32TruncSatF32U
222 => I32TruncSatF64S
223 => I32TruncSatF64U
224 => I64TruncSatF32S
225 => I64TruncSatF32U
226 => I64TruncSatF64S
227 => I64TruncSatF64U
228 =>
MemoryInit(
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
)
229 => DataDrop(@quickcheck.Arbitrary::arbitrary(t, state))
230 =>
MemoryCopy(
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
)
231 => MemoryFill(@quickcheck.Arbitrary::arbitrary(t, state))
232 =>
TableInit(
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
)
233 => ElemDrop(@quickcheck.Arbitrary::arbitrary(t, state))
234 =>
TableCopy(
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
)
235 => TableGrow(@quickcheck.Arbitrary::arbitrary(t, state))
236 => TableSize(@quickcheck.Arbitrary::arbitrary(t, state))
237 => TableFill(@quickcheck.Arbitrary::arbitrary(t, state))
238 => V128Load(@quickcheck.Arbitrary::arbitrary(t, state))
239 => V128Load8x8S(@quickcheck.Arbitrary::arbitrary(t, state))
240 => V128Load8x8U(@quickcheck.Arbitrary::arbitrary(t, state))
241 => V128Load16x4S(@quickcheck.Arbitrary::arbitrary(t, state))
242 => V128Load16x4U(@quickcheck.Arbitrary::arbitrary(t, state))
243 => V128Load32x2S(@quickcheck.Arbitrary::arbitrary(t, state))
244 => V128Load32x2U(@quickcheck.Arbitrary::arbitrary(t, state))
245 => V128Load8Splat(@quickcheck.Arbitrary::arbitrary(t, state))
246 => V128Load16Splat(@quickcheck.Arbitrary::arbitrary(t, state))
247 => V128Load32Splat(@quickcheck.Arbitrary::arbitrary(t, state))
248 => V128Load64Splat(@quickcheck.Arbitrary::arbitrary(t, state))
249 => V128Store(@quickcheck.Arbitrary::arbitrary(t, state))
250 =>
V128Const(
(state.next_uint() % 256).to_byte(),
(state.next_uint() % 256).to_byte(),
(state.next_uint() % 256).to_byte(),
(state.next_uint() % 256).to_byte(),
(state.next_uint() % 256).to_byte(),
(state.next_uint() % 256).to_byte(),
(state.next_uint() % 256).to_byte(),
(state.next_uint() % 256).to_byte(),
(state.next_uint() % 256).to_byte(),
(state.next_uint() % 256).to_byte(),
(state.next_uint() % 256).to_byte(),
(state.next_uint() % 256).to_byte(),
(state.next_uint() % 256).to_byte(),
(state.next_uint() % 256).to_byte(),
(state.next_uint() % 256).to_byte(),
(state.next_uint() % 256).to_byte(),
)
251 =>
I8x16Shuffle(
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
)
252 => I8x16Swizzle
253 => I8x16Splat
254 => I16x8Splat
255 => I32x4Splat
256 => I64x2Splat
257 => F32x4Splat
258 => F64x2Splat
259 => I8x16ExtractLaneS(@quickcheck.Arbitrary::arbitrary(t, state))
260 => I8x16ExtractLaneU(@quickcheck.Arbitrary::arbitrary(t, state))
261 => I8x16ReplaceLane(@quickcheck.Arbitrary::arbitrary(t, state))
262 => I16x8ExtractLaneS(@quickcheck.Arbitrary::arbitrary(t, state))
263 => I16x8ExtractLaneU(@quickcheck.Arbitrary::arbitrary(t, state))
264 => I16x8ReplaceLane(@quickcheck.Arbitrary::arbitrary(t, state))
265 => I32x4ExtractLane(@quickcheck.Arbitrary::arbitrary(t, state))
266 => I32x4ReplaceLane(@quickcheck.Arbitrary::arbitrary(t, state))
267 => I64x2ExtractLane(@quickcheck.Arbitrary::arbitrary(t, state))
268 => I64x2ReplaceLane(@quickcheck.Arbitrary::arbitrary(t, state))
269 => F32x4ExtractLane(@quickcheck.Arbitrary::arbitrary(t, state))
270 => F32x4ReplaceLane(@quickcheck.Arbitrary::arbitrary(t, state))
271 => F64x2ExtractLane(@quickcheck.Arbitrary::arbitrary(t, state))
272 => F64x2ReplaceLane(@quickcheck.Arbitrary::arbitrary(t, state))
273 => I8x16Eq
274 => I8x16Ne
275 => I8x16LtS
276 => I8x16LtU
277 => I8x16GtS
278 => I8x16GtU
279 => I8x16LeS
280 => I8x16LeU
281 => I8x16GeS
282 => I8x16GeU
283 => I16x8Eq
284 => I16x8Ne
285 => I16x8LtS
286 => I16x8LtU
287 => I16x8GtS
288 => I16x8GtU
289 => I16x8LeS
290 => I16x8LeU
291 => I16x8GeS
292 => I16x8GeU
293 => I32x4Eq
294 => I32x4Ne
295 => I32x4LtS
296 => I32x4LtU
297 => I32x4GtS
298 => I32x4GtU
299 => I32x4LeS
300 => I32x4LeU
301 => I32x4GeS
302 => I32x4GeU
303 => F32x4Eq
304 => F32x4Ne
305 => F32x4Lt
306 => F32x4Gt
307 => F32x4Le
308 => F32x4Ge
309 => F64x2Eq
310 => F64x2Ne
311 => F64x2Lt
312 => F64x2Gt
313 => F64x2Le
314 => F64x2Ge
315 => V128Not
316 => V128And
317 => V128Andnot
318 => V128Or
319 => V128Xor
320 => V128Bitselect
321 => V128AnyTrue
322 =>
V128Load8Lane(
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
)
323 =>
V128Load16Lane(
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
)
324 =>
V128Load32Lane(
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
)
325 =>
V128Load64Lane(
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
)
326 =>
V128Store8Lane(
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
)
327 =>
V128Store16Lane(
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
)
328 =>
V128Store32Lane(
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
)
329 =>
V128Store64Lane(
@quickcheck.Arbitrary::arbitrary(t, state),
@quickcheck.Arbitrary::arbitrary(t, state),
)
330 => V128Load32Zero(@quickcheck.Arbitrary::arbitrary(t, state))
331 => V128Load64Zero(@quickcheck.Arbitrary::arbitrary(t, state))
332 => F32x4DemoteF64x2Zero
333 => F64x2PromoteLowF32x4
334 => I8x16Abs
335 => I8x16Neg
336 => I8x16Popcnt
337 => I8x16AllTrue
338 => I8x16Bitmask
339 => I8x16NarrowI16x8S
340 => I8x16NarrowI16x8U
341 => F32x4Ceil
342 => F32x4Floor
343 => F32x4Trunc
344 => F32x4Nearest
345 => I8x16Shl
346 => I8x16ShrS
347 => I8x16ShrU
348 => I8x16Add
349 => I8x16AddSatS
350 => I8x16AddSatU
351 => I8x16Sub
352 => I8x16SubSatS
353 => I8x16SubSatU
354 => F64x2Ceil
355 => F64x2Floor
356 => I8x16MinS
357 => I8x16MinU
358 => I8x16MaxS
359 => I8x16MaxU
360 => F64x2Trunc
361 => I8x16AvgrU
362 => I16x8ExtaddPairwiseI8x16S
363 => I16x8ExtaddPairwiseI8x16U
364 => I32x4ExtaddPairwiseI16x8S
365 => I32x4ExtaddPairwiseI16x8U
366 => I16x8Abs
367 => I16x8Neg
368 => I16x8Q15mulrSatS
369 => I16x8AllTrue
370 => I16x8Bitmask
371 => I16x8NarrowI32x4S
372 => I16x8NarrowI32x4U
373 => I16x8ExtendLowI8x16S
374 => I16x8ExtendHighI8x16S
375 => I16x8ExtendLowI8x16U
376 => I16x8ExtendHighI8x16U
377 => I16x8Shl
378 => I16x8ShrS
379 => I16x8ShrU
380 => I16x8Add
381 => I16x8AddSatS
382 => I16x8AddSatU
383 => I16x8Sub
384 => I16x8SubSatS
385 => I16x8SubSatU
386 => F64x2Nearest
387 => I16x8Mul
388 => I16x8MinS
389 => I16x8MinU
390 => I16x8MaxS
391 => I16x8MaxU
392 => I16x8AvgrU
393 => I16x8ExtmulLowI8x16S
394 => I16x8ExtmulHighI8x16S
395 => I16x8ExtmulLowI8x16U
396 => I16x8ExtmulHighI8x16U
397 => I32x4Abs
398 => I32x4Neg
399 => I32x4AllTrue
400 => I32x4Bitmask
401 => I32x4ExtendLowI16x8S
402 => I32x4ExtendHighI16x8S
403 => I32x4ExtendLowI16x8U
404 => I32x4ExtendHighI16x8U
405 => I32x4Shl
406 => I32x4ShrS
407 => I32x4ShrU
408 => I32x4Add
409 => I32x4Sub
410 => I32x4Mul
411 => I32x4MinS
412 => I32x4MinU
413 => I32x4MaxS
414 => I32x4MaxU
415 => I32x4DotI16x8S
416 => I32x4ExtmulLowI16x8S
417 => I32x4ExtmulHighI16x8S
418 => I32x4ExtmulLowI16x8U
419 => I32x4ExtmulHighI16x8U
420 => I64x2Abs
421 => I64x2Neg
422 => I64x2AllTrue
423 => I64x2Bitmask
424 => I64x2ExtendLowI32x4S
425 => I64x2ExtendHighI32x4S
426 => I64x2ExtendLowI32x4U
427 => I64x2ExtendHighI32x4U
428 => I64x2Shl
429 => I64x2ShrS
430 => I64x2ShrU
431 => I64x2Add
432 => I64x2Sub
433 => I64x2Mul
434 => I64x2Eq
435 => I64x2Ne
436 => I64x2LtS
437 => I64x2GtS
438 => I64x2LeS
439 => I64x2GeS
440 => I64x2ExtmulLowI32x4S
441 => I64x2ExtmulHighI32x4S
442 => I64x2ExtmulLowI32x4U
443 => I64x2ExtmulHighI32x4U
444 => F32x4Abs
445 => F32x4Neg
446 => F32x4Sqrt
447 => F32x4Add
448 => F32x4Sub
449 => F32x4Mul
450 => F32x4Div
451 => F32x4Min
452 => F32x4Max
453 => F32x4Pmin
454 => F32x4Pmax
455 => F64x2Abs
456 => F64x2Neg
457 => F64x2Sqrt
458 => F64x2Add
459 => F64x2Sub
460 => F64x2Mul
461 => F64x2Div
462 => F64x2Min
463 => F64x2Max
464 => F64x2Pmin
465 => F64x2Pmax
466 => I32x4TruncSatF32x4S
467 => I32x4TruncSatF32x4U
468 => F32x4ConvertI32x4S
469 => F32x4ConvertI32x4U
470 => I32x4TruncSatF64x2SZero
471 => I32x4TruncSatF64x2UZero
472 => F64x2ConvertLowI32x4S
473 => F64x2ConvertLowI32x4U
474 => I8x16RelaxedSwizzle
475 => I32x4RelaxedTruncF32x4S
476 => I32x4RelaxedTruncF32x4U
477 => I32x4RelaxedTruncZeroF64x2S
478 => I32x4RelaxedTruncZeroF64x2U
479 => F32x4RelaxedMadd
480 => F32x4RelaxedNmadd
481 => F64x2RelaxedMadd
482 => F64x2RelaxedNmadd
483 => I8x16RelaxedLaneselect
484 => I16x8RelaxedLaneselect
485 => I32x4RelaxedLaneselect
486 => I64x2RelaxedLaneselect
487 => F32x4RelaxedMin
488 => F32x4RelaxedMax
489 => F64x2RelaxedMin
490 => F64x2RelaxedMax
491 => I16x8RelaxedQ15mulrS
492 => I16x8RelaxedDotI8x16I7x16S
493 => I32x4RelaxedDotI8x16I7x16AddS
_ => Nop
}
}
///|
pub impl @quickcheck.Arbitrary for ElemSec with fn arbitrary(t, state) {
let elems = []
let count = state.next_positive_int() % 4 + 1
let mut remaining = count
while remaining > 0 {
elems.push(@quickcheck.Arbitrary::arbitrary(t, state))
remaining = remaining - 1
}
ElemSec(elems)
}
///|
pub impl @quickcheck.Arbitrary for CodeSec with fn arbitrary(t, state) {
let elems = []
let count = state.next_positive_int() % 4 + 1
let mut remaining = count
while remaining > 0 {
elems.push(@quickcheck.Arbitrary::arbitrary(t, state))
remaining = remaining - 1
}
CodeSec(elems)
}
///|
pub impl @quickcheck.Arbitrary for DataSec with fn arbitrary(t, state) {
let elems = []
let count = state.next_positive_int() % 4 + 1
let mut remaining = count
while remaining > 0 {
elems.push(@quickcheck.Arbitrary::arbitrary(t, state))
remaining = remaining - 1
}
DataSec(elems)
}
///|
pub impl @quickcheck.Arbitrary for CustomSec with fn arbitrary(size, st) {
let name = @quickcheck.Arbitrary::arbitrary(size, st)
let length = st.next_positive_int() % 19 + 1
let buf = @buffer.new()
let bytes = for state = length {
match state {
0 => break buf.to_bytes()
n => {
buf.write_byte((st.next_positive_int() % 256).to_byte())
continue n - 1
}
}
}
CustomSec(name, bytes)
}
///|
pub impl @quickcheck.Arbitrary for Module with fn arbitrary(t, state) {
Module::{
custom_secs: array_of_arbitrary(5, t, state),
name_sec: None,
raw_name_sec_payload: None,
compiler_fact_custom_section: None,
type_sec: if state.next_positive_int() % 2 == 0 {
Some(@quickcheck.Arbitrary::arbitrary(t, state))
} else {
None
},
import_sec: if state.next_positive_int() % 2 == 0 {
Some(@quickcheck.Arbitrary::arbitrary(t, state))
} else {
None
},
func_annotation_sec: None,
func_sec: if state.next_positive_int() % 2 == 0 {
Some(@quickcheck.Arbitrary::arbitrary(t, state))
} else {
None
},
table_sec: if state.next_positive_int() % 2 == 0 {
Some(@quickcheck.Arbitrary::arbitrary(t, state))
} else {
None
},
mem_sec: if state.next_positive_int() % 2 == 0 {
Some(@quickcheck.Arbitrary::arbitrary(t, state))
} else {
None
},
tag_sec: if state.next_positive_int() % 2 == 0 {
Some(@quickcheck.Arbitrary::arbitrary(t, state))
} else {
None
},
stringrefs_sec: None,
global_sec: if state.next_positive_int() % 2 == 0 {
Some(@quickcheck.Arbitrary::arbitrary(t, state))
} else {
None
},
export_sec: if state.next_positive_int() % 2 == 0 {
Some(@quickcheck.Arbitrary::arbitrary(t, state))
} else {
None
},
start_sec: if state.next_positive_int() % 2 == 0 {
Some(@quickcheck.Arbitrary::arbitrary(t, state))
} else {
None
},
elem_sec: if state.next_positive_int() % 2 == 0 {
Some(@quickcheck.Arbitrary::arbitrary(t, state))
} else {
None
},
data_cnt_sec: if state.next_positive_int() % 2 == 0 {
Some(@quickcheck.Arbitrary::arbitrary(t, state))
} else {
None
},
code_sec: if state.next_positive_int() % 2 == 0 {
Some(@quickcheck.Arbitrary::arbitrary(t, state))
} else {
None
},
data_sec: if state.next_positive_int() % 2 == 0 {
Some(@quickcheck.Arbitrary::arbitrary(t, state))
} else {
None
},
}
}
///|
pub fn[T : Arbitrary] array_of_arbitrary(
max : UInt,
t : Int,
state : RandomState,
) -> Array[T] {
let count = state.next_uint() % max + 1
let a = []
for loop_state = count {
match loop_state {
0 => break a
n => {
a.push(Arbitrary::arbitrary(t, state))
continue n - 1
}
}
}
}