toilscript 0.0.1 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -201
- package/NOTICE +94 -94
- package/README.md +101 -114
- package/bin/asc.js +0 -0
- package/bin/asinit.js +0 -0
- package/dist/asc.generated.d.ts +10022 -0
- package/dist/asc.js +24457 -0
- package/dist/asc.js.map +7 -0
- package/dist/importmap.json +9 -0
- package/dist/toilscript.generated.d.ts +11237 -0
- package/dist/toilscript.js +337 -0
- package/dist/toilscript.js.map +7 -0
- package/dist/web.js +22 -0
- package/lib/binaryen.d.ts +2 -2
- package/lib/binaryen.js +2 -2
- package/package.json +115 -114
- package/std/README.md +6 -6
- package/std/assembly/array.ts +550 -550
- package/std/assembly/arraybuffer.ts +77 -77
- package/std/assembly/atomics.ts +127 -127
- package/std/assembly/bindings/asyncify.ts +16 -16
- package/std/assembly/bindings/dom.ts +291 -291
- package/std/assembly/bindings/node.ts +6 -6
- package/std/assembly/bitflags.ts +53 -53
- package/std/assembly/builtins.ts +2650 -2650
- package/std/assembly/byteslice.ts +177 -177
- package/std/assembly/compat.ts +2 -2
- package/std/assembly/console.ts +42 -42
- package/std/assembly/crypto.ts +9 -9
- package/std/assembly/dataview.ts +181 -181
- package/std/assembly/date.ts +375 -375
- package/std/assembly/diagnostics.ts +11 -11
- package/std/assembly/encoding.ts +151 -151
- package/std/assembly/endian.ts +45 -45
- package/std/assembly/error.ts +44 -44
- package/std/assembly/fixedarray.ts +173 -173
- package/std/assembly/fixedmap.ts +326 -326
- package/std/assembly/fixedset.ts +275 -275
- package/std/assembly/function.ts +42 -42
- package/std/assembly/index.d.ts +2891 -2891
- package/std/assembly/iterator.ts +35 -35
- package/std/assembly/map.ts +269 -269
- package/std/assembly/math.ts +3289 -3289
- package/std/assembly/memory.ts +123 -123
- package/std/assembly/number.ts +388 -388
- package/std/assembly/object.ts +36 -36
- package/std/assembly/performance.ts +9 -9
- package/std/assembly/pointer.ts +80 -80
- package/std/assembly/polyfills.ts +27 -27
- package/std/assembly/process.ts +50 -50
- package/std/assembly/reference.ts +48 -48
- package/std/assembly/regexp.ts +12 -12
- package/std/assembly/rt/README.md +83 -83
- package/std/assembly/rt/common.ts +81 -81
- package/std/assembly/rt/index-incremental.ts +2 -2
- package/std/assembly/rt/index-memory.ts +1 -1
- package/std/assembly/rt/index-minimal.ts +2 -2
- package/std/assembly/rt/index-stub.ts +1 -1
- package/std/assembly/rt/index.d.ts +37 -37
- package/std/assembly/rt/itcms.ts +419 -419
- package/std/assembly/rt/memory-runtime.ts +94 -94
- package/std/assembly/rt/rtrace.ts +15 -15
- package/std/assembly/rt/stub.ts +133 -133
- package/std/assembly/rt/tcms.ts +254 -254
- package/std/assembly/rt/tlsf.ts +592 -592
- package/std/assembly/rt.ts +90 -90
- package/std/assembly/set.ts +225 -225
- package/std/assembly/shared/feature.ts +68 -68
- package/std/assembly/shared/runtime.ts +13 -13
- package/std/assembly/shared/target.ts +11 -11
- package/std/assembly/shared/tsconfig.json +11 -11
- package/std/assembly/shared/typeinfo.ts +72 -72
- package/std/assembly/staticarray.ts +423 -423
- package/std/assembly/string.ts +850 -850
- package/std/assembly/symbol.ts +114 -114
- package/std/assembly/table.ts +16 -16
- package/std/assembly/tsconfig.json +6 -6
- package/std/assembly/typedarray.ts +1954 -1954
- package/std/assembly/uri.ts +17 -17
- package/std/assembly/util/bytes.ts +107 -107
- package/std/assembly/util/casemap.ts +497 -497
- package/std/assembly/util/error.ts +58 -58
- package/std/assembly/util/hash.ts +117 -117
- package/std/assembly/util/math.ts +1922 -1922
- package/std/assembly/util/memory.ts +290 -290
- package/std/assembly/util/number.ts +873 -873
- package/std/assembly/util/sort.ts +313 -313
- package/std/assembly/util/string.ts +1202 -1202
- package/std/assembly/util/uri.ts +275 -275
- package/std/assembly/vector.ts +4 -4
- package/std/assembly.json +16 -16
- package/std/portable/index.d.ts +461 -461
- package/std/portable/index.js +416 -416
- package/std/portable.json +11 -11
- package/std/types/assembly/index.d.ts +1 -1
- package/std/types/assembly/package.json +2 -2
- package/std/types/portable/index.d.ts +1 -1
- package/std/types/portable/package.json +2 -2
- package/tsconfig-base.json +13 -13
- package/util/README.md +23 -23
- package/util/browser/fs.js +1 -1
- package/util/browser/module.js +5 -5
- package/util/browser/path.js +520 -520
- package/util/browser/process.js +59 -59
- package/util/browser/url.js +23 -23
- package/util/cpu.d.ts +9 -9
- package/util/cpu.js +42 -42
- package/util/find.d.ts +6 -6
- package/util/find.js +20 -20
- package/util/node.d.ts +21 -21
- package/util/node.js +34 -34
- package/util/options.d.ts +70 -70
- package/util/options.js +262 -262
- package/util/terminal.d.ts +52 -52
- package/util/terminal.js +35 -35
- package/util/text.d.ts +26 -26
- package/util/text.js +114 -114
- package/util/tsconfig.json +9 -9
- package/util/web.d.ts +11 -11
- package/util/web.js +33 -33
package/std/assembly/bitflags.ts
CHANGED
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
// Type-safe bit manipulation utilities.
|
|
2
|
-
// Pure @inline functions — each compiles to 1-2 wasm instructions.
|
|
3
|
-
|
|
4
|
-
export namespace BitFlags {
|
|
5
|
-
|
|
6
|
-
/** Check if all bits in `bit` are set in `flags`. */
|
|
7
|
-
@inline export function has<T extends number>(flags: T, bit: T): bool {
|
|
8
|
-
if (!isInteger<T>()) ERROR("BitFlags requires an integer type");
|
|
9
|
-
return (flags & bit) == bit;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
/** Check if any bits in `mask` are set in `flags`. */
|
|
13
|
-
@inline export function hasAny<T extends number>(flags: T, mask: T): bool {
|
|
14
|
-
if (!isInteger<T>()) ERROR("BitFlags requires an integer type");
|
|
15
|
-
return (flags & mask) != <T>0;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
/** Test whether bit at `index` is set. */
|
|
19
|
-
@inline export function test<T extends number>(flags: T, index: i32): bool {
|
|
20
|
-
if (!isInteger<T>()) ERROR("BitFlags requires an integer type");
|
|
21
|
-
return (flags & (<T>1 << index)) != <T>0;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
/** Set bits from `bit` in `flags`. */
|
|
25
|
-
@inline export function set<T extends number>(flags: T, bit: T): T {
|
|
26
|
-
if (!isInteger<T>()) ERROR("BitFlags requires an integer type");
|
|
27
|
-
return flags | bit;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
/** Clear bits from `bit` in `flags`. */
|
|
31
|
-
@inline export function clear<T extends number>(flags: T, bit: T): T {
|
|
32
|
-
if (!isInteger<T>()) ERROR("BitFlags requires an integer type");
|
|
33
|
-
return flags & ~bit;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
/** Toggle bits from `bit` in `flags`. */
|
|
37
|
-
@inline export function toggle<T extends number>(flags: T, bit: T): T {
|
|
38
|
-
if (!isInteger<T>()) ERROR("BitFlags requires an integer type");
|
|
39
|
-
return flags ^ bit;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
/** Count number of set bits (population count). */
|
|
43
|
-
@inline export function popcount<T extends number>(flags: T): i32 {
|
|
44
|
-
if (!isInteger<T>()) ERROR("BitFlags requires an integer type");
|
|
45
|
-
return <i32>popcnt(flags);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
/** Check if no bits are set. */
|
|
49
|
-
@inline export function isEmpty<T extends number>(flags: T): bool {
|
|
50
|
-
if (!isInteger<T>()) ERROR("BitFlags requires an integer type");
|
|
51
|
-
return flags == <T>0;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
1
|
+
// Type-safe bit manipulation utilities.
|
|
2
|
+
// Pure @inline functions — each compiles to 1-2 wasm instructions.
|
|
3
|
+
|
|
4
|
+
export namespace BitFlags {
|
|
5
|
+
|
|
6
|
+
/** Check if all bits in `bit` are set in `flags`. */
|
|
7
|
+
@inline export function has<T extends number>(flags: T, bit: T): bool {
|
|
8
|
+
if (!isInteger<T>()) ERROR("BitFlags requires an integer type");
|
|
9
|
+
return (flags & bit) == bit;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/** Check if any bits in `mask` are set in `flags`. */
|
|
13
|
+
@inline export function hasAny<T extends number>(flags: T, mask: T): bool {
|
|
14
|
+
if (!isInteger<T>()) ERROR("BitFlags requires an integer type");
|
|
15
|
+
return (flags & mask) != <T>0;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/** Test whether bit at `index` is set. */
|
|
19
|
+
@inline export function test<T extends number>(flags: T, index: i32): bool {
|
|
20
|
+
if (!isInteger<T>()) ERROR("BitFlags requires an integer type");
|
|
21
|
+
return (flags & (<T>1 << index)) != <T>0;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/** Set bits from `bit` in `flags`. */
|
|
25
|
+
@inline export function set<T extends number>(flags: T, bit: T): T {
|
|
26
|
+
if (!isInteger<T>()) ERROR("BitFlags requires an integer type");
|
|
27
|
+
return flags | bit;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/** Clear bits from `bit` in `flags`. */
|
|
31
|
+
@inline export function clear<T extends number>(flags: T, bit: T): T {
|
|
32
|
+
if (!isInteger<T>()) ERROR("BitFlags requires an integer type");
|
|
33
|
+
return flags & ~bit;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/** Toggle bits from `bit` in `flags`. */
|
|
37
|
+
@inline export function toggle<T extends number>(flags: T, bit: T): T {
|
|
38
|
+
if (!isInteger<T>()) ERROR("BitFlags requires an integer type");
|
|
39
|
+
return flags ^ bit;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/** Count number of set bits (population count). */
|
|
43
|
+
@inline export function popcount<T extends number>(flags: T): i32 {
|
|
44
|
+
if (!isInteger<T>()) ERROR("BitFlags requires an integer type");
|
|
45
|
+
return <i32>popcnt(flags);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/** Check if no bits are set. */
|
|
49
|
+
@inline export function isEmpty<T extends number>(flags: T): bool {
|
|
50
|
+
if (!isInteger<T>()) ERROR("BitFlags requires an integer type");
|
|
51
|
+
return flags == <T>0;
|
|
52
|
+
}
|
|
53
|
+
}
|