goscript 0.0.24 → 0.0.25

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 (65) hide show
  1. package/README.md +1 -1
  2. package/cmd/goscript/cmd_compile.go +17 -1
  3. package/compiler/analysis.go +1 -1
  4. package/compiler/builtin_test.go +2 -14
  5. package/compiler/compiler.go +231 -11
  6. package/compiler/decl.go +7 -1
  7. package/compiler/expr-call.go +212 -2
  8. package/compiler/expr.go +46 -2
  9. package/compiler/field.go +4 -4
  10. package/compiler/stmt-range.go +204 -1
  11. package/compiler/type.go +47 -4
  12. package/dist/gs/builtin/builtin.d.ts +9 -0
  13. package/dist/gs/builtin/builtin.js +9 -0
  14. package/dist/gs/builtin/builtin.js.map +1 -1
  15. package/dist/gs/builtin/channel.d.ts +193 -0
  16. package/dist/gs/builtin/channel.js.map +1 -1
  17. package/dist/gs/builtin/defer.d.ts +38 -0
  18. package/dist/gs/builtin/defer.js.map +1 -1
  19. package/dist/gs/builtin/index.d.ts +1 -0
  20. package/dist/gs/builtin/index.js +2 -0
  21. package/dist/gs/builtin/index.js.map +1 -0
  22. package/dist/gs/builtin/io.d.ts +16 -0
  23. package/dist/gs/builtin/io.js.map +1 -1
  24. package/dist/gs/builtin/map.d.ts +33 -0
  25. package/dist/gs/builtin/map.js.map +1 -1
  26. package/dist/gs/builtin/slice.d.ts +173 -0
  27. package/dist/gs/builtin/slice.js.map +1 -1
  28. package/dist/gs/builtin/type.d.ts +203 -0
  29. package/dist/gs/builtin/type.js +1 -2
  30. package/dist/gs/builtin/type.js.map +1 -1
  31. package/dist/gs/builtin/varRef.d.ts +14 -0
  32. package/dist/gs/builtin/varRef.js.map +1 -1
  33. package/dist/gs/cmp/index.d.ts +4 -0
  34. package/dist/gs/cmp/index.js +27 -0
  35. package/dist/gs/cmp/index.js.map +1 -0
  36. package/dist/gs/context/context.d.ts +26 -0
  37. package/dist/gs/context/context.js +287 -37
  38. package/dist/gs/context/context.js.map +1 -1
  39. package/dist/gs/context/index.d.ts +1 -0
  40. package/dist/gs/internal/goarch/index.d.ts +6 -0
  41. package/dist/gs/internal/goarch/index.js +14 -0
  42. package/dist/gs/internal/goarch/index.js.map +1 -0
  43. package/dist/gs/iter/index.d.ts +1 -0
  44. package/dist/gs/iter/index.js +2 -0
  45. package/dist/gs/iter/index.js.map +1 -0
  46. package/dist/gs/iter/iter.d.ts +4 -0
  47. package/dist/gs/iter/iter.js +91 -0
  48. package/dist/gs/iter/iter.js.map +1 -0
  49. package/dist/gs/math/bits/index.d.ts +47 -0
  50. package/dist/gs/math/bits/index.js +298 -0
  51. package/dist/gs/math/bits/index.js.map +1 -0
  52. package/dist/gs/runtime/index.d.ts +1 -0
  53. package/dist/gs/runtime/runtime.d.ts +41 -0
  54. package/dist/gs/runtime/runtime.js.map +1 -1
  55. package/dist/gs/slices/index.d.ts +1 -0
  56. package/dist/gs/slices/index.js +2 -0
  57. package/dist/gs/slices/index.js.map +1 -0
  58. package/dist/gs/slices/slices.d.ts +8 -0
  59. package/dist/gs/slices/slices.js +20 -0
  60. package/dist/gs/slices/slices.js.map +1 -0
  61. package/dist/gs/time/index.d.ts +1 -0
  62. package/dist/gs/time/time.d.ts +57 -0
  63. package/dist/gs/time/time.js +103 -10
  64. package/dist/gs/time/time.js.map +1 -1
  65. package/package.json +1 -1
@@ -1,55 +1,305 @@
1
1
  import * as $ from "@goscript/builtin/builtin.js";
2
- // Context represents a context that can be canceled
3
- export class Context {
4
- doneChannel;
5
- canceled = false;
2
+ export const Canceled = new Error("context canceled");
3
+ Canceled.name = "CanceledError";
4
+ export class DeadlineExceededError extends Error {
6
5
  constructor() {
7
- // Create a done channel that will be closed when context is canceled
6
+ super("context deadline exceeded");
7
+ this.name = "DeadlineExceededError";
8
+ }
9
+ }
10
+ export const DeadlineExceeded = new DeadlineExceededError();
11
+ // Base implementation for all contexts
12
+ class baseContext {
13
+ }
14
+ // Background/TODO context that is never canceled
15
+ class backgroundContext extends baseContext {
16
+ static neverClosedChannel = $.makeChannel(0, {}, 'both');
17
+ static getNeverClosedChannel() {
18
+ return backgroundContext.neverClosedChannel;
19
+ }
20
+ Deadline() {
21
+ return [null, false];
22
+ }
23
+ Done() {
24
+ return backgroundContext.neverClosedChannel;
25
+ }
26
+ Err() {
27
+ return null;
28
+ }
29
+ Value(key) {
30
+ return null;
31
+ }
32
+ }
33
+ // Value context wraps a parent and adds a key-value pair
34
+ class valueContext extends baseContext {
35
+ parent;
36
+ key;
37
+ val;
38
+ constructor(parent, key, val) {
39
+ super();
40
+ this.parent = parent;
41
+ this.key = key;
42
+ this.val = val;
43
+ }
44
+ getParent() {
45
+ return this.parent;
46
+ }
47
+ Deadline() {
48
+ return this.parent.Deadline();
49
+ }
50
+ Done() {
51
+ return this.parent.Done();
52
+ }
53
+ Err() {
54
+ return this.parent.Err();
55
+ }
56
+ Value(key) {
57
+ if (this.key === key) {
58
+ return this.val;
59
+ }
60
+ return this.parent.Value(key);
61
+ }
62
+ }
63
+ // Cancel context that can be canceled
64
+ class cancelContext extends baseContext {
65
+ doneChannel;
66
+ err = null;
67
+ cause = null;
68
+ children = new Set();
69
+ parent;
70
+ parentCancelCtx = null;
71
+ removeFromParent = null;
72
+ constructor(parent) {
73
+ super();
74
+ this.parent = parent;
8
75
  this.doneChannel = $.makeChannel(0, {}, 'both');
9
76
  }
10
- // Done returns a channel that is closed when the context is canceled
77
+ Deadline() {
78
+ return this.parent.Deadline();
79
+ }
11
80
  Done() {
12
81
  return this.doneChannel;
13
82
  }
14
- // Internal method to cancel the context
15
- cancel() {
16
- if (!this.canceled) {
17
- this.canceled = true;
18
- // Close the done channel to signal cancellation
19
- // This will cause any receivers waiting on Done() to unblock
20
- this.doneChannel.close();
83
+ Err() {
84
+ return this.err;
85
+ }
86
+ Value(key) {
87
+ return this.parent.Value(key);
88
+ }
89
+ getCause() {
90
+ if (this.cause !== null) {
91
+ return this.cause;
92
+ }
93
+ return this.err;
94
+ }
95
+ cancel(removeFromParent, err, cause) {
96
+ if (this.err !== null) {
97
+ return; // Already canceled
98
+ }
99
+ this.err = err;
100
+ this.cause = cause;
101
+ this.doneChannel.close();
102
+ // Cancel all children
103
+ for (const child of this.children) {
104
+ child.cancel(false, err, cause);
105
+ }
106
+ this.children.clear();
107
+ // Remove from parent's children if requested
108
+ if (removeFromParent && this.removeFromParent) {
109
+ this.removeFromParent();
110
+ this.removeFromParent = null;
21
111
  }
22
112
  }
23
- isCanceled() {
24
- return this.canceled;
113
+ propagateCancel() {
114
+ // Find parent cancelContext if any
115
+ let parent = this.parent;
116
+ while (parent instanceof valueContext) {
117
+ parent = parent.getParent();
118
+ }
119
+ if (parent instanceof cancelContext) {
120
+ // Parent is a cancel context, register as child
121
+ this.parentCancelCtx = parent;
122
+ if (parent.err !== null) {
123
+ // Parent already canceled
124
+ this.cancel(false, parent.err, parent.cause);
125
+ }
126
+ else {
127
+ parent.children.add(this);
128
+ this.removeFromParent = () => {
129
+ parent.children.delete(this);
130
+ };
131
+ }
132
+ }
133
+ else {
134
+ // Watch parent's Done channel
135
+ this.watchParentDone();
136
+ }
137
+ }
138
+ watchParentDone() {
139
+ const parentDone = this.parent.Done();
140
+ (async () => {
141
+ try {
142
+ await parentDone.receive();
143
+ }
144
+ catch {
145
+ // Channel closed
146
+ }
147
+ // Parent is done, cancel this context
148
+ const parentErr = this.parent.Err();
149
+ if (parentErr && this.err === null) {
150
+ this.cancel(false, parentErr, null);
151
+ }
152
+ })();
153
+ }
154
+ }
155
+ // Timer context with deadline
156
+ class timerContext extends cancelContext {
157
+ deadline;
158
+ timer;
159
+ constructor(parent, deadline) {
160
+ super(parent);
161
+ this.deadline = deadline;
162
+ }
163
+ Deadline() {
164
+ return [this.deadline, true];
165
+ }
166
+ startTimer() {
167
+ const now = Date.now();
168
+ const duration = this.deadline.getTime() - now;
169
+ if (duration <= 0) {
170
+ // Already expired
171
+ this.cancel(true, DeadlineExceeded, null);
172
+ return;
173
+ }
174
+ this.timer = setTimeout(() => {
175
+ this.cancel(true, DeadlineExceeded, null);
176
+ }, duration);
177
+ }
178
+ cancel(removeFromParent, err, cause) {
179
+ super.cancel(removeFromParent, err, cause);
180
+ if (this.timer) {
181
+ clearTimeout(this.timer);
182
+ this.timer = null;
183
+ }
184
+ }
185
+ }
186
+ // Without cancel context - inherits values but not cancellation
187
+ class withoutCancelContext extends baseContext {
188
+ parent;
189
+ constructor(parent) {
190
+ super();
191
+ this.parent = parent;
192
+ }
193
+ Deadline() {
194
+ return [null, false];
195
+ }
196
+ Done() {
197
+ return backgroundContext.getNeverClosedChannel();
198
+ }
199
+ Err() {
200
+ return null;
201
+ }
202
+ Value(key) {
203
+ return this.parent.Value(key);
25
204
  }
26
205
  }
27
- // Background returns a non-nil, empty Context
206
+ // Singleton contexts
207
+ const background = new backgroundContext();
208
+ const todo = new backgroundContext();
209
+ // Background returns a non-nil, empty Context that is never canceled
28
210
  export function Background() {
29
- return new Context();
211
+ return background;
212
+ }
213
+ // TODO returns a non-nil, empty Context
214
+ export function TODO() {
215
+ return todo;
30
216
  }
31
217
  // WithCancel returns a copy of parent with a new Done channel
32
- // The returned context's Done channel is closed when the returned cancel function
33
- // is called or when the parent context's Done channel is closed, whichever happens first
34
218
  export function WithCancel(parent) {
35
- const child = new Context();
36
- // Create the cancel function
37
- const cancel = () => {
38
- child.cancel();
39
- };
40
- // If parent gets canceled, cancel the child too
41
- if (parent) {
42
- queueMicrotask(async () => {
43
- try {
44
- await parent.Done().receive();
45
- child.cancel();
46
- }
47
- catch (e) {
48
- // Parent context was canceled (channel closed), cancel child
49
- child.cancel();
50
- }
51
- });
219
+ const ctx = new cancelContext(parent);
220
+ ctx.propagateCancel();
221
+ return [ctx, () => {
222
+ ctx.cancel(true, Canceled, null);
223
+ }];
224
+ }
225
+ // WithCancelCause returns a copy of parent with a new Done channel and cause recording
226
+ export function WithCancelCause(parent) {
227
+ const ctx = new cancelContext(parent);
228
+ ctx.propagateCancel();
229
+ return [ctx, (cause) => {
230
+ ctx.cancel(true, Canceled, cause);
231
+ }];
232
+ }
233
+ // WithDeadline returns a copy of parent with the deadline adjusted to be no later than d
234
+ export function WithDeadline(parent, d) {
235
+ return WithDeadlineCause(parent, d, null);
236
+ }
237
+ // WithDeadlineCause is like WithDeadline but also sets the cause
238
+ export function WithDeadlineCause(parent, d, cause) {
239
+ // Check if parent deadline is already earlier
240
+ const [parentDeadline, ok] = parent.Deadline();
241
+ if (ok && parentDeadline && parentDeadline <= d) {
242
+ // Parent deadline is already sooner
243
+ return WithCancel(parent);
244
+ }
245
+ const ctx = new timerContext(parent, d);
246
+ ctx.propagateCancel();
247
+ ctx.startTimer();
248
+ return [ctx, () => {
249
+ ctx.cancel(true, Canceled, cause);
250
+ }];
251
+ }
252
+ // WithTimeout returns WithDeadline(parent, Date.now() + timeout)
253
+ export function WithTimeout(parent, timeout) {
254
+ return WithDeadline(parent, new Date(Date.now() + timeout));
255
+ }
256
+ // WithTimeoutCause is like WithTimeout but also sets the cause
257
+ export function WithTimeoutCause(parent, timeout, cause) {
258
+ return WithDeadlineCause(parent, new Date(Date.now() + timeout), cause);
259
+ }
260
+ // WithValue returns a copy of parent with the value associated with key
261
+ export function WithValue(parent, key, val) {
262
+ return new valueContext(parent, key, val);
263
+ }
264
+ // WithoutCancel returns a context that inherits values but not cancellation
265
+ export function WithoutCancel(parent) {
266
+ return new withoutCancelContext(parent);
267
+ }
268
+ // Cause returns the underlying cause of the context's cancellation
269
+ export function Cause(ctx) {
270
+ let c = ctx;
271
+ // Unwrap value contexts
272
+ while (c instanceof valueContext) {
273
+ c = c.getParent();
274
+ }
275
+ if (c instanceof cancelContext) {
276
+ return c.getCause();
52
277
  }
53
- return [child, cancel];
278
+ return c.Err();
279
+ }
280
+ // AfterFunc runs f in a separate goroutine after ctx is done
281
+ export function AfterFunc(ctx, f) {
282
+ let stopped = false;
283
+ let done = false;
284
+ const promise = (async () => {
285
+ try {
286
+ await ctx.Done().receive();
287
+ }
288
+ catch {
289
+ // Channel closed
290
+ }
291
+ if (!stopped) {
292
+ done = true;
293
+ // Run in next tick to simulate goroutine
294
+ setImmediate(f);
295
+ }
296
+ })();
297
+ return () => {
298
+ if (!done) {
299
+ stopped = true;
300
+ return true;
301
+ }
302
+ return false;
303
+ };
54
304
  }
55
305
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../gs/context/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,8BAA8B,CAAC;AAElD,oDAAoD;AACpD,MAAM,OAAO,OAAO;IACV,WAAW,CAAgB;IAC3B,QAAQ,GAAY,KAAK,CAAC;IAElC,cAAc;QACZ,qEAAqE;QACrE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAK,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;IAAA,CACrD;IAED,qEAAqE;IAC9D,IAAI,GAAkB;QAC3B,OAAO,IAAI,CAAC,WAAW,CAAC;IAAA,CACzB;IAED,wCAAwC;IACjC,MAAM,GAAS;QACpB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,gDAAgD;YAChD,6DAA6D;YAC7D,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QAC3B,CAAC;IAAA,CACF;IAEM,UAAU,GAAY;QAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC;IAAA,CACtB;CACF;AAED,8CAA8C;AAC9C,MAAM,UAAU,UAAU,GAAY;IACpC,OAAO,IAAI,OAAO,EAAE,CAAC;AAAA,CACtB;AAED,8DAA8D;AAC9D,kFAAkF;AAClF,yFAAyF;AACzF,MAAM,UAAU,UAAU,CAAC,MAAe,EAAyB;IACjE,MAAM,KAAK,GAAG,IAAI,OAAO,EAAE,CAAC;IAE5B,6BAA6B;IAC7B,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC;QACnB,KAAK,CAAC,MAAM,EAAE,CAAC;IAAA,CAChB,CAAC;IAEF,gDAAgD;IAChD,IAAI,MAAM,EAAE,CAAC;QACX,cAAc,CAAC,KAAK,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;gBAC9B,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,6DAA6D;gBAC7D,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,CAAC;QAAA,CACF,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAAA,CACxB"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../gs/context/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from './context.js';
@@ -0,0 +1,6 @@
1
+ export declare const PtrSize = 8;
2
+ export declare const BigEndian = false;
3
+ export declare const ArchFamily = "wasm";
4
+ export declare const Int64Align = 8;
5
+ export declare const MinFrameSize = 0;
6
+ export declare const CacheLineSize = 64;
@@ -0,0 +1,14 @@
1
+ // Architecture constants for JavaScript/WebAssembly target
2
+ // This replaces the auto-generated version with appropriate values for JS
3
+ // Pointer size in bytes (64-bit in modern JavaScript environments)
4
+ export const PtrSize = 8;
5
+ // JavaScript is little-endian
6
+ export const BigEndian = false;
7
+ // Architecture family
8
+ export const ArchFamily = "wasm";
9
+ // Other common architecture constants
10
+ export const Int64Align = 8;
11
+ export const MinFrameSize = 0;
12
+ // CPU cache line size (not really applicable in JS, but some code might reference it)
13
+ export const CacheLineSize = 64;
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../gs/internal/goarch/index.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,0EAA0E;AAE1E,mEAAmE;AACnE,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAC;AAEzB,8BAA8B;AAC9B,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC;AAE/B,sBAAsB;AACtB,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC;AAEjC,sCAAsC;AACtC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC;AAC5B,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC;AAE9B,sFAAsF;AACtF,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC"}
@@ -0,0 +1 @@
1
+ export * from './iter.js';
@@ -0,0 +1,2 @@
1
+ export * from './iter.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../gs/iter/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA"}
@@ -0,0 +1,4 @@
1
+ export type Seq<V> = (_yield: (value: V) => boolean) => void;
2
+ export type Seq2<K, V> = (_yield: (key: K, value: V) => boolean) => void;
3
+ export declare function Pull<V>(seq: Seq<V>): [() => [V | undefined, boolean], () => void];
4
+ export declare function Pull2<K, V>(seq: Seq2<K, V>): [() => [K | undefined, V | undefined, boolean], () => void];
@@ -0,0 +1,91 @@
1
+ // TypeScript implementation of Go's iter package
2
+ // This provides iterator types and functions
3
+ // Pull converts the "push-style" iterator sequence seq into a "pull-style" iterator
4
+ // Returns a function that returns the next value and a boolean indicating if iteration should continue
5
+ export function Pull(seq) {
6
+ let done = false;
7
+ let nextValue;
8
+ let hasNext = false;
9
+ const iterator = seq(function (value) {
10
+ nextValue = value;
11
+ hasNext = true;
12
+ return false; // Stop iteration after getting one value
13
+ });
14
+ const next = () => {
15
+ if (done) {
16
+ return [undefined, false];
17
+ }
18
+ if (hasNext) {
19
+ const value = nextValue;
20
+ hasNext = false;
21
+ nextValue = undefined;
22
+ return [value, true];
23
+ }
24
+ // Try to get next value
25
+ seq(function (value) {
26
+ nextValue = value;
27
+ hasNext = true;
28
+ return false; // Stop after getting one value
29
+ });
30
+ if (hasNext) {
31
+ const value = nextValue;
32
+ hasNext = false;
33
+ nextValue = undefined;
34
+ return [value, true];
35
+ }
36
+ done = true;
37
+ return [undefined, false];
38
+ };
39
+ const stop = () => {
40
+ done = true;
41
+ hasNext = false;
42
+ nextValue = undefined;
43
+ };
44
+ return [next, stop];
45
+ }
46
+ // Pull2 converts the "push-style" iterator sequence seq into a "pull-style" iterator
47
+ // Returns a function that returns the next key-value pair and a boolean indicating if iteration should continue
48
+ export function Pull2(seq) {
49
+ let done = false;
50
+ let nextKey;
51
+ let nextValue;
52
+ let hasNext = false;
53
+ const next = () => {
54
+ if (done) {
55
+ return [undefined, undefined, false];
56
+ }
57
+ if (hasNext) {
58
+ const key = nextKey;
59
+ const value = nextValue;
60
+ hasNext = false;
61
+ nextKey = undefined;
62
+ nextValue = undefined;
63
+ return [key, value, true];
64
+ }
65
+ // Try to get next value
66
+ seq(function (key, value) {
67
+ nextKey = key;
68
+ nextValue = value;
69
+ hasNext = true;
70
+ return false; // Stop after getting one value
71
+ });
72
+ if (hasNext) {
73
+ const key = nextKey;
74
+ const value = nextValue;
75
+ hasNext = false;
76
+ nextKey = undefined;
77
+ nextValue = undefined;
78
+ return [key, value, true];
79
+ }
80
+ done = true;
81
+ return [undefined, undefined, false];
82
+ };
83
+ const stop = () => {
84
+ done = true;
85
+ hasNext = false;
86
+ nextKey = undefined;
87
+ nextValue = undefined;
88
+ };
89
+ return [next, stop];
90
+ }
91
+ //# sourceMappingURL=iter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iter.js","sourceRoot":"","sources":["../../../gs/iter/iter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ export declare const UintSize = 32;
2
+ export declare function LeadingZeros(x: number): number;
3
+ export declare function LeadingZeros8(x: number): number;
4
+ export declare function LeadingZeros16(x: number): number;
5
+ export declare function LeadingZeros32(x: number): number;
6
+ export declare function LeadingZeros64(x: bigint): number;
7
+ export declare function TrailingZeros(x: number): number;
8
+ export declare function TrailingZeros8(x: number): number;
9
+ export declare function TrailingZeros16(x: number): number;
10
+ export declare function TrailingZeros32(x: number): number;
11
+ export declare function TrailingZeros64(x: bigint): number;
12
+ export declare function OnesCount(x: number): number;
13
+ export declare function OnesCount8(x: number): number;
14
+ export declare function OnesCount16(x: number): number;
15
+ export declare function OnesCount32(x: number): number;
16
+ export declare function OnesCount64(x: bigint): number;
17
+ export declare function RotateLeft(x: number, k: number): number;
18
+ export declare function RotateLeft8(x: number, k: number): number;
19
+ export declare function RotateLeft16(x: number, k: number): number;
20
+ export declare function RotateLeft32(x: number, k: number): number;
21
+ export declare function RotateLeft64(x: bigint, k: number): bigint;
22
+ export declare function Reverse(x: number): number;
23
+ export declare function Reverse8(x: number): number;
24
+ export declare function Reverse16(x: number): number;
25
+ export declare function Reverse32(x: number): number;
26
+ export declare function Reverse64(x: bigint): bigint;
27
+ export declare function ReverseBytes(x: number): number;
28
+ export declare function ReverseBytes16(x: number): number;
29
+ export declare function ReverseBytes32(x: number): number;
30
+ export declare function ReverseBytes64(x: bigint): bigint;
31
+ export declare function Len(x: number): number;
32
+ export declare function Len8(x: number): number;
33
+ export declare function Len16(x: number): number;
34
+ export declare function Len32(x: number): number;
35
+ export declare function Len64(x: bigint): number;
36
+ export declare function Mul(x: number, y: number): [number, number];
37
+ export declare function Mul32(x: number, y: number): [number, number];
38
+ export declare function Mul64(x: bigint, y: bigint): [bigint, bigint];
39
+ export declare function Div(hi: number, lo: number, y: number): [number, number];
40
+ export declare function Div32(hi: number, lo: number, y: number): [number, number];
41
+ export declare function Div64(hi: bigint, lo: bigint, y: bigint): [bigint, bigint];
42
+ export declare function Add(x: number, y: number, carry: number): [number, number];
43
+ export declare function Add32(x: number, y: number, carry: number): [number, number];
44
+ export declare function Add64(x: bigint, y: bigint, carry: bigint): [bigint, bigint];
45
+ export declare function Sub(x: number, y: number, borrow: number): [number, number];
46
+ export declare function Sub32(x: number, y: number, borrow: number): [number, number];
47
+ export declare function Sub64(x: bigint, y: bigint, borrow: bigint): [bigint, bigint];