xbintsc 0.3.8 → 0.3.10

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 (97) hide show
  1. package/README.md +14 -11
  2. package/README.zh-CN.md +13 -11
  3. package/dist/src/codegen/generator/calls/invocation.js +3 -0
  4. package/dist/src/codegen/generator/calls/invocation.js.map +1 -1
  5. package/dist/src/codegen/generator/context.d.ts +5 -0
  6. package/dist/src/codegen/generator/context.js +18 -2
  7. package/dist/src/codegen/generator/context.js.map +1 -1
  8. package/dist/src/codegen/generator/expressions/primary.js +17 -0
  9. package/dist/src/codegen/generator/expressions/primary.js.map +1 -1
  10. package/dist/src/codegen/generator/state.js +3 -0
  11. package/dist/src/codegen/generator/state.js.map +1 -1
  12. package/dist/src/codegen/generator/tables.js +3 -0
  13. package/dist/src/codegen/generator/tables.js.map +1 -1
  14. package/dist/src/driver/index.d.ts +1 -1
  15. package/dist/src/driver/index.js +1 -1
  16. package/dist/src/driver/index.js.map +1 -1
  17. package/dist/src/driver/paths.d.ts +7 -0
  18. package/dist/src/driver/paths.js +9 -0
  19. package/dist/src/driver/paths.js.map +1 -1
  20. package/dist/src/extensions/node/assert/index.d.ts +10 -0
  21. package/dist/src/extensions/node/assert/index.js +37 -0
  22. package/dist/src/extensions/node/assert/index.js.map +1 -0
  23. package/dist/src/extensions/node/buffer/index.js +16 -0
  24. package/dist/src/extensions/node/buffer/index.js.map +1 -1
  25. package/dist/src/extensions/node/dgram/index.js +4 -0
  26. package/dist/src/extensions/node/dgram/index.js.map +1 -1
  27. package/dist/src/extensions/node/events/index.js +1 -1
  28. package/dist/src/extensions/node/events/index.js.map +1 -1
  29. package/dist/src/extensions/node/fs/index.js +3 -1
  30. package/dist/src/extensions/node/fs/index.js.map +1 -1
  31. package/dist/src/extensions/node/fs/streams.d.ts +6 -0
  32. package/dist/src/extensions/node/fs/streams.js +9 -0
  33. package/dist/src/extensions/node/fs/streams.js.map +1 -0
  34. package/dist/src/extensions/node/http/index.js +3 -0
  35. package/dist/src/extensions/node/http/index.js.map +1 -1
  36. package/dist/src/extensions/node/index.js +10 -0
  37. package/dist/src/extensions/node/index.js.map +1 -1
  38. package/dist/src/extensions/node/net/index.js +7 -0
  39. package/dist/src/extensions/node/net/index.js.map +1 -1
  40. package/dist/src/extensions/node/stream/index.js +8 -0
  41. package/dist/src/extensions/node/stream/index.js.map +1 -1
  42. package/dist/src/extensions/node/stream-promises/index.d.ts +9 -0
  43. package/dist/src/extensions/node/stream-promises/index.js +16 -0
  44. package/dist/src/extensions/node/stream-promises/index.js.map +1 -0
  45. package/dist/src/extensions/node/test/index.d.ts +10 -0
  46. package/dist/src/extensions/node/test/index.js +30 -0
  47. package/dist/src/extensions/node/test/index.js.map +1 -0
  48. package/dist/src/extensions/node/worker_threads/index.d.ts +10 -0
  49. package/dist/src/extensions/node/worker_threads/index.js +22 -0
  50. package/dist/src/extensions/node/worker_threads/index.js.map +1 -0
  51. package/dist/src/extensions/node/zlib/index.d.ts +8 -0
  52. package/dist/src/extensions/node/zlib/index.js +15 -0
  53. package/dist/src/extensions/node/zlib/index.js.map +1 -0
  54. package/dist/src/extensions/registry.d.ts +6 -0
  55. package/dist/src/extensions/registry.js.map +1 -1
  56. package/dist/tests/driver/paths.test.js +11 -1
  57. package/dist/tests/driver/paths.test.js.map +1 -1
  58. package/dist/tests/e2e/compile-node.test.js +67 -1
  59. package/dist/tests/e2e/compile-node.test.js.map +1 -1
  60. package/dist/tests/e2e/compile.test.js +12 -0
  61. package/dist/tests/e2e/compile.test.js.map +1 -1
  62. package/dist/tests/e2e/node-modules.test.js +127 -3
  63. package/dist/tests/e2e/node-modules.test.js.map +1 -1
  64. package/package.json +1 -1
  65. package/runtime/ext_node/assert/assert.c +207 -0
  66. package/runtime/ext_node/crypto/crypto.c +230 -14
  67. package/runtime/ext_node/fs/streams.c +31 -0
  68. package/runtime/ext_node/stream/pipeline.c +147 -0
  69. package/runtime/ext_node/stream/stream.c +20 -0
  70. package/runtime/ext_node/test/test.c +102 -0
  71. package/runtime/ext_node/worker_threads/worker_threads.c +206 -0
  72. package/runtime/ext_node/zlib/zlib.c +19 -0
  73. package/runtime/xt_io.c +86 -0
  74. package/runtime/xt_stdlib/dispatch.inc +9 -1
  75. package/scripts/package-release.ts +11 -3
  76. package/src/codegen/generator/calls/invocation.ts +2 -0
  77. package/src/codegen/generator/context.ts +19 -2
  78. package/src/codegen/generator/expressions/primary.ts +17 -0
  79. package/src/codegen/generator/state.ts +3 -0
  80. package/src/codegen/generator/tables.ts +3 -0
  81. package/src/driver/index.ts +1 -1
  82. package/src/driver/paths.ts +14 -0
  83. package/src/extensions/node/assert/index.ts +44 -0
  84. package/src/extensions/node/buffer/index.ts +19 -0
  85. package/src/extensions/node/dgram/index.ts +6 -0
  86. package/src/extensions/node/events/index.ts +1 -1
  87. package/src/extensions/node/fs/index.ts +3 -1
  88. package/src/extensions/node/fs/streams.ts +11 -0
  89. package/src/extensions/node/http/index.ts +8 -0
  90. package/src/extensions/node/index.ts +10 -0
  91. package/src/extensions/node/net/index.ts +10 -0
  92. package/src/extensions/node/stream/index.ts +10 -0
  93. package/src/extensions/node/stream-promises/index.ts +18 -0
  94. package/src/extensions/node/test/index.ts +35 -0
  95. package/src/extensions/node/worker_threads/index.ts +26 -0
  96. package/src/extensions/node/zlib/index.ts +17 -0
  97. package/src/extensions/registry.ts +6 -0
@@ -724,6 +724,18 @@ describeE2E("end-to-end compilation", (harness) => {
724
724
  `;
725
725
  expect(runProgram(source)).toBe("function map 1\n2,4,6\nfunction bc a-b-c\n15\nthrew");
726
726
  });
727
+ it("calls functions through computed and indexed element access", () => {
728
+ const source = `
729
+ const fns = [(n: number) => n + 1, (n: number) => n * 2];
730
+ console.log(fns[0](10), fns[1](10));
731
+ let total = 0;
732
+ for (let i = 0; i < fns.length; i++) total += fns[i](3);
733
+ const table: any = { a: () => "A", b: () => "B" };
734
+ const key = "b";
735
+ console.log(total, table[key]());
736
+ `;
737
+ expect(runProgram(source)).toBe("11 20\n10 B");
738
+ });
727
739
  it("supports the Error family as first-class constructors", () => {
728
740
  const source = `
729
741
  console.log(typeof Error, typeof TypeError, typeof AggregateError);
@@ -1 +1 @@
1
- {"version":3,"file":"compile.test.js","sourceRoot":"","sources":["../../../tests/e2e/compile.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compile.test.js","sourceRoot":"","sources":["../../../tests/e2e/compile.test.ts"],"names":[],"mappings":"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"}
@@ -52,6 +52,17 @@ describeWithClang("node compatibility modules", () => {
52
52
  expect(status).toBe(0);
53
53
  expect(stdout.trim()).toBe(["hello 5 true", "AAAA", "deadbeef", "foobar", "305419896 12345678"].join("\n"));
54
54
  });
55
+ it("supports named imports from buffer", () => {
56
+ const source = `
57
+ import { Buffer, alloc, concat, from, isBuffer } from "buffer";
58
+ console.log(from("hello").toString(), alloc(4, 65).toString());
59
+ console.log(isBuffer(from("x")), concat([from("foo"), from("bar")]).toString());
60
+ console.log(new Buffer("hey").toString(), Buffer.from("yo").toString(), Buffer.isBuffer(Buffer.from("z")));
61
+ `;
62
+ const { status, stdout } = run(source);
63
+ expect(status).toBe(0);
64
+ expect(stdout.trim().split("\n")).toEqual(["hello AAAA", "true foobar", "hey yo true"]);
65
+ });
55
66
  it("wraps fs operations in promises", () => {
56
67
  const target = join(workdir, `promise_${Math.random().toString(36).slice(2)}.txt`);
57
68
  const source = `
@@ -94,6 +105,43 @@ describeWithClang("node compatibility modules", () => {
94
105
  expect(status).toBe(0);
95
106
  expect(stdout.trim().split("\n")).toEqual(["data hello", "end", "upper ABC", "piped"]);
96
107
  });
108
+ it("supports named imports from stream", () => {
109
+ const source = `
110
+ import { PassThrough, Readable, Transform, Writable } from "stream";
111
+ const readable = new Readable();
112
+ readable.on("data", (chunk: string) => console.log("data", chunk));
113
+ readable.push("hello");
114
+ readable.push(null);
115
+ const transform = new Transform({ transform(chunk: string, enc: string, cb: (err: unknown, out: string) => void) {
116
+ cb(null, chunk.toUpperCase());
117
+ } });
118
+ transform.on("data", (chunk: string) => console.log("upper", chunk));
119
+ transform.write("abc");
120
+ const pass = new PassThrough();
121
+ pass.on("data", (chunk: string) => console.log("pass", chunk));
122
+ pass.write("through");
123
+ const sink = new Writable();
124
+ sink.on("finish", () => console.log("finish"));
125
+ sink.end();
126
+ `;
127
+ const { status, stdout } = run(source);
128
+ expect(status).toBe(0);
129
+ expect(stdout.trim().split("\n")).toEqual(["data hello", "upper ABC", "pass through", "finish"]);
130
+ });
131
+ it("flushes chunks buffered before a data listener attaches", () => {
132
+ const source = `
133
+ const readable = new Readable();
134
+ readable.push("early");
135
+ readable.on("data", (chunk: string) => console.log("data", chunk));
136
+ readable.push(null);
137
+
138
+ const from = Readable.from(["a", "b"]);
139
+ from.on("data", (chunk: string) => console.log("from", chunk));
140
+ `;
141
+ const { status, stdout } = run(source);
142
+ expect(status).toBe(0);
143
+ expect(stdout.trim().split("\n")).toEqual(["data early", "from a", "from b"]);
144
+ });
97
145
  it("exchanges data over a TCP server and client", () => {
98
146
  const source = `
99
147
  const server = net.createServer((socket: any) => {
@@ -116,6 +164,29 @@ describeWithClang("node compatibility modules", () => {
116
164
  expect(status).toBe(0);
117
165
  expect(stdout.trim().split("\n")).toEqual(["client echo:ping", "end"]);
118
166
  });
167
+ it("supports named imports from node:net", () => {
168
+ const source = `
169
+ import { createServer, connect } from "node:net";
170
+ const server = createServer((socket: any) => {
171
+ socket.on("data", (data: string) => {
172
+ socket.write("echo:" + data);
173
+ socket.end();
174
+ });
175
+ });
176
+ server.listen(0, () => {
177
+ const client = connect(server.address().port, "127.0.0.1");
178
+ client.on("data", (data: string) => console.log("client", data));
179
+ client.on("end", () => {
180
+ console.log("end");
181
+ server.close();
182
+ });
183
+ client.write("ping");
184
+ });
185
+ `;
186
+ const { status, stdout } = run(source);
187
+ expect(status).toBe(0);
188
+ expect(stdout.trim().split("\n")).toEqual(["client echo:ping", "end"]);
189
+ });
119
190
  it("exchanges a datagram over UDP", () => {
120
191
  const source = `
121
192
  const server = dgram.createSocket("udp4");
@@ -176,9 +247,54 @@ describeWithClang("node compatibility modules", () => {
176
247
  "post hello /submit payload",
177
248
  ]);
178
249
  });
250
+ it("supports named imports from node:http", () => {
251
+ const source = `
252
+ import { createServer, get } from "node:http";
253
+ const server = createServer((req: any, res: any) => {
254
+ res.writeHead(200, { "Content-Type": "text/plain" });
255
+ res.end("hello " + req.url);
256
+ });
257
+ server.listen(0, () => {
258
+ const port = server.address().port;
259
+ get("http://127.0.0.1:" + port + "/world", (res: any) => {
260
+ let body = "";
261
+ console.log("status", res.statusCode);
262
+ res.on("data", (chunk: string) => { body += chunk; });
263
+ res.on("end", () => {
264
+ console.log("get", body);
265
+ server.close();
266
+ });
267
+ });
268
+ });
269
+ `;
270
+ const { status, stdout } = run(source);
271
+ expect(status).toBe(0);
272
+ expect(stdout.trim().split("\n")).toEqual(["status 200", "get hello /world"]);
273
+ });
274
+ it("supports named imports from dgram", () => {
275
+ const source = `
276
+ import { createSocket } from "node:dgram";
277
+ const server = createSocket("udp4");
278
+ server.on("message", (msg: string, rinfo: any) => {
279
+ server.send("pong:" + msg, rinfo.port, rinfo.address);
280
+ });
281
+ server.bind(0, () => {
282
+ const client = createSocket("udp4");
283
+ client.on("message", (msg: string) => {
284
+ console.log(msg);
285
+ client.close();
286
+ server.close();
287
+ });
288
+ client.send("ping", server.address().port, "127.0.0.1");
289
+ });
290
+ `;
291
+ const { status, stdout } = run(source);
292
+ expect(status).toBe(0);
293
+ expect(stdout.trim()).toBe("pong:ping");
294
+ });
179
295
  it("provides a standalone EventEmitter from events", () => {
180
296
  const source = `
181
- import { EventEmitter } from "events";
297
+ import { EventEmitter, addAbortListener, getEventListeners } from "events";
182
298
  const em = new EventEmitter();
183
299
  let count = 0;
184
300
  let onceCount = 0;
@@ -195,11 +311,19 @@ describeWithClang("node compatibility modules", () => {
195
311
  let seen = 0;
196
312
  global.on("x", () => { seen++; });
197
313
  global.emit("x");
198
- console.log("global", seen);
314
+ console.log("global", seen, EventEmitter.listenerCount(global, "x"));
315
+ // addAbortListener registers on the signal's abort listeners.
316
+ const signal: any = {};
317
+ let aborted = 0;
318
+ addAbortListener(signal, () => { aborted++; });
319
+ const abortListeners = getEventListeners(signal, "abort");
320
+ const first: any = abortListeners[0];
321
+ first();
322
+ console.log("abort", aborted);
199
323
  `;
200
324
  const { status, stdout } = run(source);
201
325
  expect(status).toBe(0);
202
- expect(stdout.trim().split("\n")).toEqual(["before 2", "after 2 1 1", "names 0", "global 1"]);
326
+ expect(stdout.trim().split("\n")).toEqual(["before 2", "after 2 1 1", "names 0", "global 1 1", "abort 1"]);
203
327
  });
204
328
  it("implements util helpers", () => {
205
329
  const source = `
@@ -1 +1 @@
1
- {"version":3,"file":"node-modules.test.js","sourceRoot":"","sources":["../../../tests/e2e/node-modules.test.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACnE,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,iBAAiB,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;AAEhE,iBAAiB,CAAC,4BAA4B,EAAE,GAAG,EAAE;IACnD,IAAI,OAAe,CAAC;IACpB,IAAI,QAAgB,CAAC;IAErB,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,oBAAoB,CAAC,CAAC,CAAC;QAC5D,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,EAAE;QACZ,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,SAAS,GAAG,CAAC,MAAc;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,WAAW,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACjF,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC7B,MAAM,UAAU,GAAG,qBAAqB,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QACnE,yEAAyE;QACzE,gEAAgE;QAChE,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9G,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC7E,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QACxF,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;IACnG,CAAC;IAED,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,MAAM,GAAG;;;;;;;;;KASd,CAAC;QACF,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CACxB,CAAC,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,oBAAoB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAChF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,WAAW,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACnF,MAAM,MAAM,GAAG;;;0BAGO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;sCACV,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;kCAC1B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;;mBAErC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;;;KAGpC,CAAC;QACF,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;KAmBd,CAAC;QACF,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;IACzF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;KAgBd,CAAC;QACF,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;KAcd,CAAC;QACF,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA8Bd,CAAC;QACF,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;YACxC,YAAY;YACZ,mBAAmB;YACnB,4BAA4B;SAC7B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;KAmBd,CAAC;QACF,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;IAChG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,MAAM,GAAG;;;;;;;;KAQd,CAAC;QACF,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;YACxC,aAAa;YACb,uBAAuB;YACvB,iBAAiB;YACjB,WAAW;SACZ,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,MAAM,GAAG;;;;;;KAMd,CAAC;QACF,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;YACxC,yBAAyB;YACzB,iBAAiB;YACjB,iBAAiB;SAClB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"node-modules.test.js","sourceRoot":"","sources":["../../../tests/e2e/node-modules.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xbintsc",
3
- "version": "0.3.8",
3
+ "version": "0.3.10",
4
4
  "description": "xbintsc - a TypeScript binary compiler (TypeScript -> LLVM IR -> native binary)",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -0,0 +1,207 @@
1
+ /*
2
+ * Node.js `assert` module for xbintsc.
3
+ *
4
+ * Implements the commonly used assertion surface on top of the runtime's
5
+ * exception machinery: a failed assertion throws an `AssertionError`, exactly
6
+ * like Node. `node:test` catches that error and reports the test as failed.
7
+ *
8
+ * All entry points share the namespace dispatcher `xt_assert_static`, so both
9
+ * `import assert from "node:assert"` (`assert.strictEqual(...)`) and named
10
+ * imports (`import { strictEqual } from "assert"`) work.
11
+ */
12
+
13
+ #include "../node_common.h"
14
+
15
+ #include <string.h>
16
+
17
+ /* An `AssertionError` is an ordinary Error-family object; set the error kind so
18
+ * `xt_to_string`/inspection formats it as `AssertionError: message`. */
19
+ static void assert_throw(xt_value actual, xt_value expected, xt_value message) {
20
+ xt_value error = xt_object_new();
21
+ ((xt_object *)XT_GET_PTR(error))->header.kind = XT_OBJECT_KIND_ERROR;
22
+ xt_node_set(error, "name", xt_string_from_cstr("AssertionError"));
23
+ xt_node_set(error, "message", message);
24
+ xt_node_set(error, "code", xt_string_from_cstr("ERR_ASSERTION"));
25
+ if (!xt_truthy(xt_is_nullish(actual))) xt_node_set(error, "actual", actual);
26
+ if (!xt_truthy(xt_is_nullish(expected))) xt_node_set(error, "expected", expected);
27
+ xt_throw(error);
28
+ }
29
+
30
+ /* `message` is the user supplied message (or undefined); otherwise `fallback`
31
+ * is used. */
32
+ static xt_value assert_message(xt_value message, const char *fallback) {
33
+ if (!xt_truthy(xt_is_nullish(message))) return xt_to_string(message);
34
+ return xt_string_from_cstr(fallback);
35
+ }
36
+
37
+ static xt_value assert_join3(xt_value a, const char *middle, xt_value b) {
38
+ xt_value left = xt_add(a, xt_string_from_cstr(middle));
39
+ return xt_add(left, xt_to_string(b));
40
+ }
41
+
42
+ /* -- deep equality -------------------------------------------------------- */
43
+
44
+ static int assert_deep_equal(xt_value a, xt_value b, int depth) {
45
+ if (depth > 32) return xt_truthy(xt_seq(a, b));
46
+ if (XT_IS_ARRAY(a) && XT_IS_ARRAY(b)) {
47
+ int32_t count = (int32_t)xt_to_number(xt_array_length(a));
48
+ if (count != (int32_t)xt_to_number(xt_array_length(b))) return 0;
49
+ for (int32_t i = 0; i < count; i++) {
50
+ if (!assert_deep_equal(xt_array_get(a, xt_number(i)), xt_array_get(b, xt_number(i)), depth + 1)) return 0;
51
+ }
52
+ return 1;
53
+ }
54
+ if (XT_IS_OBJECT(a) && XT_IS_OBJECT(b)) {
55
+ xt_value keysA = xt_object_keys(a);
56
+ xt_value keysB = xt_object_keys(b);
57
+ int32_t count = (int32_t)xt_to_number(xt_array_length(keysA));
58
+ if (count != (int32_t)xt_to_number(xt_array_length(keysB))) return 0;
59
+ for (int32_t i = 0; i < count; i++) {
60
+ xt_value key = xt_array_get(keysA, xt_number(i));
61
+ if (!xt_truthy(xt_object_has(b, key))) return 0;
62
+ if (!assert_deep_equal(xt_object_get(a, key), xt_object_get(b, key), depth + 1)) return 0;
63
+ }
64
+ return 1;
65
+ }
66
+ return xt_truthy(xt_seq(a, b));
67
+ }
68
+
69
+ /* -- assertions ----------------------------------------------------------- */
70
+
71
+ static xt_value assert_ok(int32_t argc, xt_value *argv) {
72
+ xt_value value = xt_arg(argc, argv, 0);
73
+ if (!xt_truthy(value)) {
74
+ assert_throw(value, XT_UNDEFINED, assert_message(xt_arg(argc, argv, 1), "The expression evaluated to a falsy value"));
75
+ }
76
+ return xt_undefined();
77
+ }
78
+
79
+ static xt_value assert_equality(int32_t argc, xt_value *argv, int strict, const char *headline, const char *operator) {
80
+ xt_value actual = xt_arg(argc, argv, 0);
81
+ xt_value expected = xt_arg(argc, argv, 1);
82
+ xt_value message = xt_arg(argc, argv, 2);
83
+ int equal = strict ? xt_truthy(xt_seq(actual, expected)) : xt_truthy(xt_eq(actual, expected));
84
+ if (equal) return xt_undefined();
85
+ xt_value text = xt_string_from_cstr(headline);
86
+ text = xt_add(text, xt_to_string(actual));
87
+ text = xt_add(text, xt_string_from_cstr(operator));
88
+ text = xt_add(text, xt_to_string(expected));
89
+ text = xt_add(text, xt_string_from_cstr("\n"));
90
+ if (!xt_truthy(xt_is_nullish(message))) text = xt_to_string(message);
91
+ assert_throw(actual, expected, text);
92
+ return xt_undefined();
93
+ }
94
+
95
+ static xt_value assert_deep(int32_t argc, xt_value *argv, int negate) {
96
+ xt_value actual = xt_arg(argc, argv, 0);
97
+ xt_value expected = xt_arg(argc, argv, 1);
98
+ xt_value message = xt_arg(argc, argv, 2);
99
+ int equal = assert_deep_equal(actual, expected, 0);
100
+ if (negate) equal = !equal;
101
+ if (equal) return xt_undefined();
102
+ xt_value text = xt_string_from_cstr(
103
+ negate ? "Expected values to be strictly not deep-equal:\n\n" : "Expected values to be strictly deep-equal:\n\n");
104
+ text = assert_join3(text, " !== ", expected);
105
+ text = xt_add(text, xt_string_from_cstr("\n"));
106
+ if (!xt_truthy(xt_is_nullish(message))) text = xt_to_string(message);
107
+ assert_throw(actual, expected, text);
108
+ return xt_undefined();
109
+ }
110
+
111
+ static xt_value assert_fail(int32_t argc, xt_value *argv) {
112
+ xt_value message = xt_arg(argc, argv, 0);
113
+ assert_throw(XT_UNDEFINED, XT_UNDEFINED, assert_message(message, "Failed"));
114
+ return xt_undefined();
115
+ }
116
+
117
+ static xt_value assert_throws(int32_t argc, xt_value *argv, int negate) {
118
+ xt_value fn = xt_arg(argc, argv, 0);
119
+ xt_value message = xt_arg(argc, argv, 2);
120
+ if (!XT_IS_FUNCTION(fn)) {
121
+ assert_throw(XT_UNDEFINED, XT_UNDEFINED,
122
+ assert_message(message, negate ? "Expected a function" : "Expected a function to throw"));
123
+ }
124
+ void *frame = xt_try_enter();
125
+ if (xt_try_setjmp(frame) == 0) {
126
+ xt_closure_call(fn, 0, NULL);
127
+ xt_try_leave(frame);
128
+ if (negate) return xt_undefined();
129
+ assert_throw(XT_UNDEFINED, XT_UNDEFINED,
130
+ assert_message(message, "Missing expected exception"));
131
+ }
132
+ xt_value error = xt_try_exception(frame);
133
+ xt_try_leave(frame);
134
+ if (negate) {
135
+ xt_value text = xt_string_from_cstr("Got unwanted exception: ");
136
+ text = xt_add(text, xt_to_string(error));
137
+ assert_throw(XT_UNDEFINED, XT_UNDEFINED, xt_truthy(xt_is_nullish(message)) ? text : xt_to_string(message));
138
+ }
139
+ return xt_undefined();
140
+ }
141
+
142
+ static xt_value assert_if_error(int32_t argc, xt_value *argv) {
143
+ xt_value value = xt_arg(argc, argv, 0);
144
+ if (!xt_truthy(xt_is_nullish(value))) {
145
+ if (XT_IS_OBJECT(value)) xt_throw(value);
146
+ assert_throw(XT_UNDEFINED, XT_UNDEFINED, xt_to_string(value));
147
+ }
148
+ return xt_undefined();
149
+ }
150
+
151
+ static xt_value assert_match(int32_t argc, xt_value *argv, int negate) {
152
+ xt_value value = xt_arg(argc, argv, 0);
153
+ xt_value pattern = xt_arg(argc, argv, 1);
154
+ xt_value message = xt_arg(argc, argv, 2);
155
+ xt_value text = xt_to_string(value);
156
+ int matched = 0;
157
+ if (xt_truthy(xt_is_nullish(pattern))) {
158
+ matched = 0;
159
+ } else if (XT_IS_STRING(pattern)) {
160
+ matched = strstr(xt_string_data(text), xt_string_data(pattern)) != NULL;
161
+ } else {
162
+ /* A RegExp (or anything else) is delegated to String.prototype.match. */
163
+ xt_value key = xt_string_from_cstr("match");
164
+ xt_value result = xt_call_method(text, key, 1, &pattern);
165
+ matched = !xt_truthy(xt_is_nullish(result));
166
+ }
167
+ if (negate) matched = !matched;
168
+ if (matched) return xt_undefined();
169
+ assert_throw(value, pattern, assert_message(message, "The input did not match the regular expression"));
170
+ return xt_undefined();
171
+ }
172
+
173
+ xt_value xt_assert_static(xt_value name, int32_t argc, xt_value *argv) {
174
+ const char *fn = xt_string_data(name);
175
+ if (!fn) return xt_undefined();
176
+ if (strcmp(fn, "ok") == 0) return assert_ok(argc, argv);
177
+ if (strcmp(fn, "fail") == 0) return assert_fail(argc, argv);
178
+ if (strcmp(fn, "equal") == 0) return assert_equality(argc, argv, 0, "Expected values to be loosely equal:\n\n", " != ");
179
+ if (strcmp(fn, "notEqual") == 0) {
180
+ /* `notEqual` succeeds when the values differ. */
181
+ if (xt_truthy(xt_eq(xt_arg(argc, argv, 0), xt_arg(argc, argv, 1)))) {
182
+ assert_throw(xt_arg(argc, argv, 0), xt_arg(argc, argv, 1),
183
+ assert_message(xt_arg(argc, argv, 2), "Expected values to not be loosely equal"));
184
+ }
185
+ return xt_undefined();
186
+ }
187
+ if (strcmp(fn, "strictEqual") == 0) return assert_equality(argc, argv, 1, "Expected values to be strictly equal:\n\n", " !== ");
188
+ if (strcmp(fn, "notStrictEqual") == 0) {
189
+ if (xt_truthy(xt_seq(xt_arg(argc, argv, 0), xt_arg(argc, argv, 1)))) {
190
+ assert_throw(xt_arg(argc, argv, 0), xt_arg(argc, argv, 1),
191
+ assert_message(xt_arg(argc, argv, 2), "Expected values to be strictly not equal"));
192
+ }
193
+ return xt_undefined();
194
+ }
195
+ if (strcmp(fn, "deepEqual") == 0 || strcmp(fn, "deepStrictEqual") == 0) return assert_deep(argc, argv, 0);
196
+ if (strcmp(fn, "notDeepEqual") == 0 || strcmp(fn, "notDeepStrictEqual") == 0) return assert_deep(argc, argv, 1);
197
+ if (strcmp(fn, "throws") == 0) return assert_throws(argc, argv, 0);
198
+ if (strcmp(fn, "doesNotThrow") == 0) return assert_throws(argc, argv, 1);
199
+ if (strcmp(fn, "ifError") == 0) return assert_if_error(argc, argv);
200
+ if (strcmp(fn, "match") == 0) return assert_match(argc, argv, 0);
201
+ if (strcmp(fn, "doesNotMatch") == 0) return assert_match(argc, argv, 1);
202
+ if (strcmp(fn, "rejects") == 0 || strcmp(fn, "doesNotReject") == 0) {
203
+ /* No async rejection surface yet: resolve immediately. */
204
+ return xt_promise_resolve(xt_undefined());
205
+ }
206
+ return xt_undefined();
207
+ }