toilscript 0.0.1

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.
Files changed (117) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +94 -0
  3. package/README.md +114 -0
  4. package/bin/asc.js +35 -0
  5. package/bin/asinit.js +468 -0
  6. package/dist/asc.d.ts +4 -0
  7. package/dist/toilscript.d.ts +4 -0
  8. package/dist/transform.cjs +1 -0
  9. package/dist/transform.d.ts +1 -0
  10. package/dist/transform.js +1 -0
  11. package/lib/binaryen.d.ts +2 -0
  12. package/lib/binaryen.js +2 -0
  13. package/package.json +114 -0
  14. package/std/README.md +6 -0
  15. package/std/assembly/array.ts +550 -0
  16. package/std/assembly/arraybuffer.ts +77 -0
  17. package/std/assembly/atomics.ts +127 -0
  18. package/std/assembly/bindings/asyncify.ts +16 -0
  19. package/std/assembly/bindings/dom.ts +291 -0
  20. package/std/assembly/bindings/node.ts +6 -0
  21. package/std/assembly/bitflags.ts +53 -0
  22. package/std/assembly/builtins.ts +2650 -0
  23. package/std/assembly/byteslice.ts +177 -0
  24. package/std/assembly/compat.ts +2 -0
  25. package/std/assembly/console.ts +42 -0
  26. package/std/assembly/crypto.ts +9 -0
  27. package/std/assembly/dataview.ts +181 -0
  28. package/std/assembly/date.ts +375 -0
  29. package/std/assembly/diagnostics.ts +11 -0
  30. package/std/assembly/encoding.ts +151 -0
  31. package/std/assembly/endian.ts +45 -0
  32. package/std/assembly/error.ts +44 -0
  33. package/std/assembly/fixedarray.ts +173 -0
  34. package/std/assembly/fixedmap.ts +326 -0
  35. package/std/assembly/fixedset.ts +275 -0
  36. package/std/assembly/function.ts +42 -0
  37. package/std/assembly/index.d.ts +2891 -0
  38. package/std/assembly/iterator.ts +35 -0
  39. package/std/assembly/map.ts +269 -0
  40. package/std/assembly/math.ts +3289 -0
  41. package/std/assembly/memory.ts +123 -0
  42. package/std/assembly/number.ts +388 -0
  43. package/std/assembly/object.ts +36 -0
  44. package/std/assembly/performance.ts +9 -0
  45. package/std/assembly/pointer.ts +80 -0
  46. package/std/assembly/polyfills.ts +27 -0
  47. package/std/assembly/process.ts +50 -0
  48. package/std/assembly/reference.ts +48 -0
  49. package/std/assembly/regexp.ts +12 -0
  50. package/std/assembly/rt/README.md +83 -0
  51. package/std/assembly/rt/common.ts +81 -0
  52. package/std/assembly/rt/index-incremental.ts +2 -0
  53. package/std/assembly/rt/index-memory.ts +1 -0
  54. package/std/assembly/rt/index-minimal.ts +2 -0
  55. package/std/assembly/rt/index-stub.ts +1 -0
  56. package/std/assembly/rt/index.d.ts +37 -0
  57. package/std/assembly/rt/itcms.ts +419 -0
  58. package/std/assembly/rt/memory-runtime.ts +94 -0
  59. package/std/assembly/rt/rtrace.ts +15 -0
  60. package/std/assembly/rt/stub.ts +133 -0
  61. package/std/assembly/rt/tcms.ts +254 -0
  62. package/std/assembly/rt/tlsf.ts +592 -0
  63. package/std/assembly/rt.ts +90 -0
  64. package/std/assembly/set.ts +225 -0
  65. package/std/assembly/shared/feature.ts +68 -0
  66. package/std/assembly/shared/runtime.ts +13 -0
  67. package/std/assembly/shared/target.ts +11 -0
  68. package/std/assembly/shared/tsconfig.json +11 -0
  69. package/std/assembly/shared/typeinfo.ts +72 -0
  70. package/std/assembly/staticarray.ts +423 -0
  71. package/std/assembly/string.ts +850 -0
  72. package/std/assembly/symbol.ts +114 -0
  73. package/std/assembly/table.ts +16 -0
  74. package/std/assembly/tsconfig.json +6 -0
  75. package/std/assembly/typedarray.ts +1954 -0
  76. package/std/assembly/uri.ts +17 -0
  77. package/std/assembly/util/bytes.ts +107 -0
  78. package/std/assembly/util/casemap.ts +497 -0
  79. package/std/assembly/util/error.ts +58 -0
  80. package/std/assembly/util/hash.ts +117 -0
  81. package/std/assembly/util/math.ts +1922 -0
  82. package/std/assembly/util/memory.ts +290 -0
  83. package/std/assembly/util/number.ts +873 -0
  84. package/std/assembly/util/sort.ts +313 -0
  85. package/std/assembly/util/string.ts +1202 -0
  86. package/std/assembly/util/uri.ts +275 -0
  87. package/std/assembly/vector.ts +4 -0
  88. package/std/assembly.json +16 -0
  89. package/std/portable/index.d.ts +461 -0
  90. package/std/portable/index.js +416 -0
  91. package/std/portable.json +11 -0
  92. package/std/types/assembly/index.d.ts +1 -0
  93. package/std/types/assembly/package.json +3 -0
  94. package/std/types/portable/index.d.ts +1 -0
  95. package/std/types/portable/package.json +3 -0
  96. package/tsconfig-base.json +13 -0
  97. package/util/README.md +23 -0
  98. package/util/browser/fs.js +1 -0
  99. package/util/browser/module.js +5 -0
  100. package/util/browser/path.js +520 -0
  101. package/util/browser/process.js +59 -0
  102. package/util/browser/url.js +23 -0
  103. package/util/cpu.d.ts +9 -0
  104. package/util/cpu.js +42 -0
  105. package/util/find.d.ts +6 -0
  106. package/util/find.js +20 -0
  107. package/util/node.d.ts +21 -0
  108. package/util/node.js +34 -0
  109. package/util/options.d.ts +70 -0
  110. package/util/options.js +262 -0
  111. package/util/terminal.d.ts +52 -0
  112. package/util/terminal.js +35 -0
  113. package/util/text.d.ts +26 -0
  114. package/util/text.js +114 -0
  115. package/util/tsconfig.json +9 -0
  116. package/util/web.d.ts +11 -0
  117. package/util/web.js +33 -0
@@ -0,0 +1,114 @@
1
+ import { Map } from "./map";
2
+
3
+ // @ts-ignore: decorator
4
+ @lazy let stringToId: Map<string, usize> = new Map();
5
+
6
+ // @ts-ignore: decorator
7
+ @lazy let idToString: Map<usize, string> = new Map();
8
+
9
+ // @ts-ignore: decorator
10
+ @lazy let nextId: usize = 12; // Symbol.unscopables + 1
11
+
12
+ @unmanaged @final abstract class _Symbol {
13
+
14
+ // TODO: all of the following default symbols are unused currently yet add to
15
+ // binary size if #toString becomes compiled. Ultimately we'll most likely want
16
+ // to remove the unsupported ones and only keep what's actually supported.
17
+
18
+ // @ts-ignore: decorator
19
+ @lazy
20
+ static readonly hasInstance: symbol = changetype<symbol>(1);
21
+
22
+ // @ts-ignore: decorator
23
+ @lazy
24
+ static readonly isConcatSpreadable: symbol = changetype<symbol>(2);
25
+
26
+ // @ts-ignore: decorator
27
+ @lazy
28
+ static readonly isRegExp: symbol = changetype<symbol>(3);
29
+
30
+ // @ts-ignore: decorator
31
+ @lazy
32
+ static readonly iterator: symbol = changetype<symbol>(3);
33
+
34
+ // @ts-ignore: decorator
35
+ @lazy
36
+ static readonly match: symbol = changetype<symbol>(4);
37
+
38
+ // @ts-ignore: decorator
39
+ @lazy
40
+ static readonly replace: symbol = changetype<symbol>(5);
41
+
42
+ // @ts-ignore: decorator
43
+ @lazy
44
+ static readonly search: symbol = changetype<symbol>(6);
45
+
46
+ // @ts-ignore: decorator
47
+ @lazy
48
+ static readonly species: symbol = changetype<symbol>(7);
49
+
50
+ // @ts-ignore: decorator
51
+ @lazy
52
+ static readonly split: symbol = changetype<symbol>(8);
53
+
54
+ // @ts-ignore: decorator
55
+ @lazy
56
+ static readonly toPrimitive: symbol = changetype<symbol>(9);
57
+
58
+ // @ts-ignore: decorator
59
+ @lazy
60
+ static readonly toStringTag: symbol = changetype<symbol>(10);
61
+
62
+ // @ts-ignore: decorator
63
+ @lazy
64
+ static readonly unscopables: symbol = changetype<symbol>(11);
65
+
66
+ static for(key: string): symbol {
67
+ if (stringToId.has(key)) return changetype<symbol>(stringToId.get(key));
68
+ let id = nextId++;
69
+ if (!id) unreachable(); // out of ids
70
+ stringToId.set(key, id);
71
+ idToString.set(id, key);
72
+ return changetype<symbol>(id);
73
+ }
74
+
75
+ static keyFor(sym: symbol): string | null {
76
+ return idToString.has(changetype<usize>(sym))
77
+ ? idToString.get(changetype<usize>(sym))
78
+ : null;
79
+ }
80
+
81
+ toString(): string {
82
+ let id = changetype<usize>(this);
83
+ let str = "";
84
+ switch (<u32>id) {
85
+ case 1: { str = "hasInstance"; break; }
86
+ case 2: { str = "isConcatSpreadable"; break; }
87
+ case 3: { str = "isRegExp"; break; }
88
+ case 4: { str = "match"; break; }
89
+ case 5: { str = "replace"; break; }
90
+ case 6: { str = "search"; break; }
91
+ case 7: { str = "species"; break; }
92
+ case 8: { str = "split"; break; }
93
+ case 9: { str = "toPrimitive"; break; }
94
+ case 10: { str = "toStringTag"; break; }
95
+ case 11: { str = "unscopables"; break; }
96
+ default: {
97
+ if (idToString != null && idToString.has(id)) str = idToString.get(id);
98
+ break;
99
+ }
100
+ }
101
+ return "Symbol(" + str + ")";
102
+ }
103
+ }
104
+
105
+ export function Symbol(description: string | null = null): symbol {
106
+ let id = nextId++;
107
+ if (!id) unreachable(); // out of ids
108
+ return changetype<symbol>(id);
109
+ }
110
+
111
+ export type Symbol = _Symbol;
112
+
113
+ // @ts-ignore: nolib
114
+ export type symbol = _Symbol;
@@ -0,0 +1,16 @@
1
+ import { E_NOTIMPLEMENTED } from "./util/error";
2
+
3
+ export namespace table {
4
+
5
+ export function copy(dst: u32, src: u32, n: u32): void {
6
+ throw new Error(E_NOTIMPLEMENTED);
7
+ }
8
+
9
+ export function init(elementIndex: u32, srcOffset: u32, dstOffset: u32, n: u32): void {
10
+ throw new Error(E_NOTIMPLEMENTED);
11
+ }
12
+
13
+ export function drop(elementIndex: u32): void {
14
+ throw new Error(E_NOTIMPLEMENTED);
15
+ }
16
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "extends": "../assembly.json",
3
+ "include": [
4
+ "./**/*.ts"
5
+ ]
6
+ }