···11+---
22+source: compiler-core/src/javascript/tests/bit_arrays.rs
33+expression: "\nfn go(x) {\n let n = 16\n let m = 32\n let assert <<first:size(8), a:size(n), b:size(m), rest:bits>> = x\n}\n"
44+---
55+----- SOURCE CODE
66+77+fn go(x) {
88+ let n = 16
99+ let m = 32
1010+ let assert <<first:size(8), a:size(n), b:size(m), rest:bits>> = x
1111+}
1212+1313+1414+----- COMPILED JAVASCRIPT
1515+import { makeError, bitArraySlice, bitArraySliceToInt } from "../gleam.mjs";
1616+1717+function go(x) {
1818+ let n = 16;
1919+ let m = 32;
2020+ if (!(x.bitSize >= n + m + 8)) {
2121+ throw makeError(
2222+ "let_assert",
2323+ "my/mod",
2424+ 5,
2525+ "go",
2626+ "Pattern match failed, no pattern matched the value.",
2727+ { value: x }
2828+ )
2929+ }
3030+ let first = x.byteAt(0);
3131+ let a = bitArraySliceToInt(x, 8, n + 8, true, false);
3232+ let b = bitArraySliceToInt(x, n + 8, n + m + 8, true, false);
3333+ let rest = bitArraySlice(x, n + m + 8);
3434+ return x;
3535+}