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/uri.ts
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { encode, decode, URI_UNSAFE, URL_UNSAFE } from "./util/uri";
|
|
2
|
-
|
|
3
|
-
export function encodeURI(str: string): string {
|
|
4
|
-
return changetype<string>(encode(changetype<usize>(str), str.length, URI_UNSAFE));
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
export function decodeURI(str: string): string {
|
|
8
|
-
return changetype<string>(decode(changetype<usize>(str), str.length, false));
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export function encodeURIComponent(str: string): string {
|
|
12
|
-
return changetype<string>(encode(changetype<usize>(str), str.length, URL_UNSAFE));
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export function decodeURIComponent(str: string): string {
|
|
16
|
-
return changetype<string>(decode(changetype<usize>(str), str.length, true));
|
|
17
|
-
}
|
|
1
|
+
import { encode, decode, URI_UNSAFE, URL_UNSAFE } from "./util/uri";
|
|
2
|
+
|
|
3
|
+
export function encodeURI(str: string): string {
|
|
4
|
+
return changetype<string>(encode(changetype<usize>(str), str.length, URI_UNSAFE));
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export function decodeURI(str: string): string {
|
|
8
|
+
return changetype<string>(decode(changetype<usize>(str), str.length, false));
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export function encodeURIComponent(str: string): string {
|
|
12
|
+
return changetype<string>(encode(changetype<usize>(str), str.length, URL_UNSAFE));
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export function decodeURIComponent(str: string): string {
|
|
16
|
+
return changetype<string>(decode(changetype<usize>(str), str.length, true));
|
|
17
|
+
}
|
|
@@ -1,107 +1,107 @@
|
|
|
1
|
-
export function REVERSE<T>(ptr: usize, len: usize): void {
|
|
2
|
-
if (len > 1) {
|
|
3
|
-
let
|
|
4
|
-
i: usize = 0,
|
|
5
|
-
tail: usize,
|
|
6
|
-
hlen: usize = len >> 1;
|
|
7
|
-
|
|
8
|
-
if (ASC_SHRINK_LEVEL < 1) {
|
|
9
|
-
if (sizeof<T>() == 1) {
|
|
10
|
-
// TODO: Decide later: Does we need this fast path cases?
|
|
11
|
-
//
|
|
12
|
-
// if (len == 4) {
|
|
13
|
-
// store<u32>(ptr, bswap(load<u32>(ptr)));
|
|
14
|
-
// return;
|
|
15
|
-
// }
|
|
16
|
-
// if (len == 8) {
|
|
17
|
-
// store<u64>(ptr, bswap(load<u64>(ptr)));
|
|
18
|
-
// return;
|
|
19
|
-
// }
|
|
20
|
-
tail = len - 8;
|
|
21
|
-
while (i + 7 < hlen) {
|
|
22
|
-
let front = ptr + i;
|
|
23
|
-
let back = ptr + tail - i;
|
|
24
|
-
let temp = bswap(load<u64>(front));
|
|
25
|
-
store<u64>(front, bswap(load<u64>(back)));
|
|
26
|
-
store<u64>(back, temp);
|
|
27
|
-
i += 8;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
if (sizeof<T>() == 2) {
|
|
32
|
-
tail = len - 2;
|
|
33
|
-
while (i + 1 < hlen) {
|
|
34
|
-
let front = ptr + (i << 1);
|
|
35
|
-
let back = ptr + (tail - i << 1);
|
|
36
|
-
let temp = rotr(load<u32>(back), 16);
|
|
37
|
-
store<u32>(back, rotr(load<u32>(front), 16));
|
|
38
|
-
store<u32>(front, temp);
|
|
39
|
-
i += 2;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
tail = len - 1;
|
|
45
|
-
while (i < hlen) {
|
|
46
|
-
let front = ptr + (i << alignof<T>());
|
|
47
|
-
let back = ptr + (tail - i << alignof<T>());
|
|
48
|
-
let temp = load<T>(front);
|
|
49
|
-
store<T>(front, load<T>(back));
|
|
50
|
-
store<T>(back, temp);
|
|
51
|
-
i++;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
export function FILL<T>(
|
|
57
|
-
ptr: usize,
|
|
58
|
-
len: usize,
|
|
59
|
-
value: T,
|
|
60
|
-
start: isize,
|
|
61
|
-
end: isize
|
|
62
|
-
): void {
|
|
63
|
-
start = start < 0 ? max(len + start, 0) : min(start, len);
|
|
64
|
-
end = end < 0 ? max(len + end, 0) : min(end, len);
|
|
65
|
-
|
|
66
|
-
if (sizeof<T>() == 1) {
|
|
67
|
-
if (start < end) {
|
|
68
|
-
memory.fill(
|
|
69
|
-
ptr + <usize>start,
|
|
70
|
-
u8(value),
|
|
71
|
-
<usize>(end - start)
|
|
72
|
-
);
|
|
73
|
-
}
|
|
74
|
-
} else {
|
|
75
|
-
if (ASC_SHRINK_LEVEL <= 1) {
|
|
76
|
-
if (isInteger<T>()) {
|
|
77
|
-
// @ts-ignore
|
|
78
|
-
if (value == <T>0 | value == <T>-1) {
|
|
79
|
-
if (start < end) {
|
|
80
|
-
memory.fill(
|
|
81
|
-
ptr + (<usize>start << alignof<T>()),
|
|
82
|
-
u8(value),
|
|
83
|
-
<usize>(end - start) << alignof<T>()
|
|
84
|
-
);
|
|
85
|
-
}
|
|
86
|
-
return;
|
|
87
|
-
}
|
|
88
|
-
} else if (isFloat<T>()) {
|
|
89
|
-
// for floating non-negative zeros we can use fast memory.fill
|
|
90
|
-
if ((sizeof<T>() == 4 && reinterpret<u32>(f32(value)) == 0) ||
|
|
91
|
-
(sizeof<T>() == 8 && reinterpret<u64>(f64(value)) == 0)) {
|
|
92
|
-
if (start < end) {
|
|
93
|
-
memory.fill(
|
|
94
|
-
ptr + (<usize>start << alignof<T>()),
|
|
95
|
-
0,
|
|
96
|
-
<usize>(end - start) << alignof<T>()
|
|
97
|
-
);
|
|
98
|
-
}
|
|
99
|
-
return;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
for (; start < end; ++start) {
|
|
104
|
-
store<T>(ptr + (<usize>start << alignof<T>()), value);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
}
|
|
1
|
+
export function REVERSE<T>(ptr: usize, len: usize): void {
|
|
2
|
+
if (len > 1) {
|
|
3
|
+
let
|
|
4
|
+
i: usize = 0,
|
|
5
|
+
tail: usize,
|
|
6
|
+
hlen: usize = len >> 1;
|
|
7
|
+
|
|
8
|
+
if (ASC_SHRINK_LEVEL < 1) {
|
|
9
|
+
if (sizeof<T>() == 1) {
|
|
10
|
+
// TODO: Decide later: Does we need this fast path cases?
|
|
11
|
+
//
|
|
12
|
+
// if (len == 4) {
|
|
13
|
+
// store<u32>(ptr, bswap(load<u32>(ptr)));
|
|
14
|
+
// return;
|
|
15
|
+
// }
|
|
16
|
+
// if (len == 8) {
|
|
17
|
+
// store<u64>(ptr, bswap(load<u64>(ptr)));
|
|
18
|
+
// return;
|
|
19
|
+
// }
|
|
20
|
+
tail = len - 8;
|
|
21
|
+
while (i + 7 < hlen) {
|
|
22
|
+
let front = ptr + i;
|
|
23
|
+
let back = ptr + tail - i;
|
|
24
|
+
let temp = bswap(load<u64>(front));
|
|
25
|
+
store<u64>(front, bswap(load<u64>(back)));
|
|
26
|
+
store<u64>(back, temp);
|
|
27
|
+
i += 8;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
if (sizeof<T>() == 2) {
|
|
32
|
+
tail = len - 2;
|
|
33
|
+
while (i + 1 < hlen) {
|
|
34
|
+
let front = ptr + (i << 1);
|
|
35
|
+
let back = ptr + (tail - i << 1);
|
|
36
|
+
let temp = rotr(load<u32>(back), 16);
|
|
37
|
+
store<u32>(back, rotr(load<u32>(front), 16));
|
|
38
|
+
store<u32>(front, temp);
|
|
39
|
+
i += 2;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
tail = len - 1;
|
|
45
|
+
while (i < hlen) {
|
|
46
|
+
let front = ptr + (i << alignof<T>());
|
|
47
|
+
let back = ptr + (tail - i << alignof<T>());
|
|
48
|
+
let temp = load<T>(front);
|
|
49
|
+
store<T>(front, load<T>(back));
|
|
50
|
+
store<T>(back, temp);
|
|
51
|
+
i++;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export function FILL<T>(
|
|
57
|
+
ptr: usize,
|
|
58
|
+
len: usize,
|
|
59
|
+
value: T,
|
|
60
|
+
start: isize,
|
|
61
|
+
end: isize
|
|
62
|
+
): void {
|
|
63
|
+
start = start < 0 ? max(len + start, 0) : min(start, len);
|
|
64
|
+
end = end < 0 ? max(len + end, 0) : min(end, len);
|
|
65
|
+
|
|
66
|
+
if (sizeof<T>() == 1) {
|
|
67
|
+
if (start < end) {
|
|
68
|
+
memory.fill(
|
|
69
|
+
ptr + <usize>start,
|
|
70
|
+
u8(value),
|
|
71
|
+
<usize>(end - start)
|
|
72
|
+
);
|
|
73
|
+
}
|
|
74
|
+
} else {
|
|
75
|
+
if (ASC_SHRINK_LEVEL <= 1) {
|
|
76
|
+
if (isInteger<T>()) {
|
|
77
|
+
// @ts-ignore
|
|
78
|
+
if (value == <T>0 | value == <T>-1) {
|
|
79
|
+
if (start < end) {
|
|
80
|
+
memory.fill(
|
|
81
|
+
ptr + (<usize>start << alignof<T>()),
|
|
82
|
+
u8(value),
|
|
83
|
+
<usize>(end - start) << alignof<T>()
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
} else if (isFloat<T>()) {
|
|
89
|
+
// for floating non-negative zeros we can use fast memory.fill
|
|
90
|
+
if ((sizeof<T>() == 4 && reinterpret<u32>(f32(value)) == 0) ||
|
|
91
|
+
(sizeof<T>() == 8 && reinterpret<u64>(f64(value)) == 0)) {
|
|
92
|
+
if (start < end) {
|
|
93
|
+
memory.fill(
|
|
94
|
+
ptr + (<usize>start << alignof<T>()),
|
|
95
|
+
0,
|
|
96
|
+
<usize>(end - start) << alignof<T>()
|
|
97
|
+
);
|
|
98
|
+
}
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
for (; start < end; ++start) {
|
|
104
|
+
store<T>(ptr + (<usize>start << alignof<T>()), value);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|