@isolated-vm/experimental 0.0.9 → 0.0.11

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 (151) hide show
  1. package/addon/CMakeLists.txt +1 -1
  2. package/addon/handle/local_of.cc +149 -0
  3. package/addon/handle/types.cc +8 -137
  4. package/addon/handle/value_of.cc +82 -27
  5. package/addon/support/callback_info.cc +5 -5
  6. package/addon/support/callback_storage.cc +2 -2
  7. package/addon/support/free_function.cc +3 -3
  8. package/addon/support/initialize.cc +5 -5
  9. package/addon/transfer/accept.cc +104 -72
  10. package/addon/transfer/visit.cc +97 -54
  11. package/addon/value/array.cc +6 -6
  12. package/addon/value/array_buffer.cc +27 -18
  13. package/addon/value/function.cc +5 -5
  14. package/addon/value/function.h.cc +5 -5
  15. package/addon/value/object.cc +3 -3
  16. package/addon/value/primitive.cc +36 -36
  17. package/addon/value/prototype.cc +7 -7
  18. package/addon/value/record.cc +20 -20
  19. package/addon/value/value.cc +1 -1
  20. package/addon/value/vector.cc +9 -9
  21. package/backend/backend.d.cts +9 -9
  22. package/dist/frontend/agent.d.ts +1 -0
  23. package/dist/frontend/agent.d.ts.map +1 -1
  24. package/dist/frontend/agent.js.map +1 -1
  25. package/dist/frontend/module.d.ts +1 -1
  26. package/dist/frontend/module.d.ts.map +1 -1
  27. package/dist/frontend/module.js.map +1 -1
  28. package/dist/frontend/realm.d.ts +1 -1
  29. package/dist/frontend/realm.d.ts.map +1 -1
  30. package/dist/frontend/reference.d.ts +3 -3
  31. package/dist/frontend/reference.d.ts.map +1 -1
  32. package/dist/test/00.agent/00.prerequisites.d.ts +2 -0
  33. package/dist/test/00.agent/00.prerequisites.d.ts.map +1 -0
  34. package/dist/test/00.agent/00.prerequisites.js +25 -0
  35. package/dist/test/00.agent/00.prerequisites.js.map +1 -0
  36. package/dist/test/00.agent/10.clock.d.ts +2 -0
  37. package/dist/test/00.agent/10.clock.d.ts.map +1 -0
  38. package/dist/test/{00.datetime.js → 00.agent/10.clock.js} +8 -8
  39. package/dist/test/00.agent/10.clock.js.map +1 -0
  40. package/dist/test/00.agent/10.random.d.ts +2 -0
  41. package/dist/test/00.agent/10.random.d.ts.map +1 -0
  42. package/dist/test/{00.random.js → 00.agent/10.random.js} +4 -4
  43. package/dist/test/00.agent/10.random.js.map +1 -0
  44. package/dist/test/10.transfer/00.primitives.d.ts +2 -0
  45. package/dist/test/10.transfer/00.primitives.d.ts.map +1 -0
  46. package/dist/test/10.transfer/00.primitives.js +54 -0
  47. package/dist/test/10.transfer/00.primitives.js.map +1 -0
  48. package/dist/test/10.transfer/10.array_buffer.d.ts +2 -0
  49. package/dist/test/10.transfer/10.array_buffer.d.ts.map +1 -0
  50. package/dist/test/{20.array_buffer.js → 10.transfer/10.array_buffer.js} +69 -64
  51. package/dist/test/10.transfer/10.array_buffer.js.map +1 -0
  52. package/dist/test/10.transfer/90.regressions.d.ts +2 -0
  53. package/dist/test/10.transfer/90.regressions.d.ts.map +1 -0
  54. package/dist/test/10.transfer/90.regressions.js +72 -0
  55. package/dist/test/10.transfer/90.regressions.js.map +1 -0
  56. package/dist/test/20.intrinsics/00.script.d.ts +2 -0
  57. package/dist/test/20.intrinsics/00.script.d.ts.map +1 -0
  58. package/dist/test/{10.script.js → 20.intrinsics/00.script.js} +32 -7
  59. package/dist/test/20.intrinsics/00.script.js.map +1 -0
  60. package/dist/test/20.intrinsics/05.global.d.ts.map +1 -0
  61. package/dist/test/{05.global.js → 20.intrinsics/05.global.js} +5 -5
  62. package/dist/test/20.intrinsics/05.global.js.map +1 -0
  63. package/dist/test/20.intrinsics/10.reference.d.ts.map +1 -0
  64. package/dist/test/{10.reference.js → 20.intrinsics/10.reference.js} +73 -27
  65. package/dist/test/20.intrinsics/10.reference.js.map +1 -0
  66. package/dist/test/20.intrinsics/20.module.d.ts +2 -0
  67. package/dist/test/20.intrinsics/20.module.d.ts.map +1 -0
  68. package/dist/test/{10.module.js → 20.intrinsics/20.module.js} +70 -39
  69. package/dist/test/20.intrinsics/20.module.js.map +1 -0
  70. package/dist/test/50.features/50.timers.d.ts.map +1 -0
  71. package/dist/test/{50.timers.js → 50.features/50.timers.js} +8 -8
  72. package/dist/test/50.features/50.timers.js.map +1 -0
  73. package/dist/test/50.features/90.i18n.d.ts +2 -0
  74. package/dist/test/50.features/90.i18n.d.ts.map +1 -0
  75. package/dist/test/{99.i18n.js → 50.features/90.i18n.js} +6 -6
  76. package/dist/test/50.features/90.i18n.js.map +1 -0
  77. package/dist/test/90.isolation/00.dispose.d.ts +1 -1
  78. package/dist/test/90.isolation/00.dispose.d.ts.map +1 -1
  79. package/dist/test/90.isolation/00.dispose.js +23 -5
  80. package/dist/test/90.isolation/00.dispose.js.map +1 -1
  81. package/dist/test/90.isolation/10.memory.d.ts +2 -0
  82. package/dist/test/90.isolation/10.memory.d.ts.map +1 -0
  83. package/dist/test/90.isolation/10.memory.js +51 -0
  84. package/dist/test/90.isolation/10.memory.js.map +1 -0
  85. package/dist/test/fixtures.js +2 -2
  86. package/dist/test/fixtures.js.map +1 -1
  87. package/dist/test/glob.d.ts +2 -0
  88. package/dist/test/glob.d.ts.map +1 -0
  89. package/dist/test/glob.js +11 -0
  90. package/dist/test/glob.js.map +1 -0
  91. package/dist/tsconfig.tsbuildinfo +1 -1
  92. package/dist/utility/completion.d.ts +2 -1
  93. package/dist/utility/completion.d.ts.map +1 -1
  94. package/dist/utility/completion.js +4 -0
  95. package/dist/utility/completion.js.map +1 -1
  96. package/frontend/agent.ts +1 -0
  97. package/frontend/module.ts +1 -1
  98. package/frontend/realm.ts +4 -1
  99. package/frontend/reference.ts +3 -3
  100. package/package.json +13 -13
  101. package/test/00.agent/00.prerequisites.ts +12 -0
  102. package/test/{00.datetime.ts → 00.agent/10.clock.ts} +7 -7
  103. package/test/{00.random.ts → 00.agent/10.random.ts} +3 -3
  104. package/test/10.transfer/00.primitives.ts +47 -0
  105. package/test/{20.array_buffer.ts → 10.transfer/10.array_buffer.ts} +40 -35
  106. package/test/10.transfer/90.regressions.ts +38 -0
  107. package/test/{10.script.ts → 20.intrinsics/00.script.ts} +21 -6
  108. package/test/{05.global.ts → 20.intrinsics/05.global.ts} +5 -5
  109. package/test/20.intrinsics/10.reference.ts +111 -0
  110. package/test/{10.module.ts → 20.intrinsics/20.module.ts} +39 -17
  111. package/test/{50.timers.ts → 50.features/50.timers.ts} +8 -8
  112. package/test/{99.i18n.ts → 50.features/90.i18n.ts} +5 -5
  113. package/test/90.isolation/00.dispose.ts +12 -5
  114. package/test/90.isolation/10.memory.ts +28 -0
  115. package/test/fixtures.ts +4 -4
  116. package/test/glob.ts +11 -0
  117. package/utility/completion.ts +6 -1
  118. package/addon/handle/bound_value.cc +0 -45
  119. package/dist/test/00.datetime.d.ts +0 -2
  120. package/dist/test/00.datetime.d.ts.map +0 -1
  121. package/dist/test/00.datetime.js.map +0 -1
  122. package/dist/test/00.random.d.ts +0 -2
  123. package/dist/test/00.random.d.ts.map +0 -1
  124. package/dist/test/00.random.js.map +0 -1
  125. package/dist/test/00.transfer.d.ts +0 -2
  126. package/dist/test/00.transfer.d.ts.map +0 -1
  127. package/dist/test/00.transfer.js +0 -168
  128. package/dist/test/00.transfer.js.map +0 -1
  129. package/dist/test/05.global.d.ts.map +0 -1
  130. package/dist/test/05.global.js.map +0 -1
  131. package/dist/test/10.module.d.ts +0 -2
  132. package/dist/test/10.module.d.ts.map +0 -1
  133. package/dist/test/10.module.js.map +0 -1
  134. package/dist/test/10.reference.d.ts.map +0 -1
  135. package/dist/test/10.reference.js.map +0 -1
  136. package/dist/test/10.script.d.ts +0 -2
  137. package/dist/test/10.script.d.ts.map +0 -1
  138. package/dist/test/10.script.js.map +0 -1
  139. package/dist/test/20.array_buffer.d.ts +0 -2
  140. package/dist/test/20.array_buffer.d.ts.map +0 -1
  141. package/dist/test/20.array_buffer.js.map +0 -1
  142. package/dist/test/50.timers.d.ts.map +0 -1
  143. package/dist/test/50.timers.js.map +0 -1
  144. package/dist/test/99.i18n.d.ts +0 -2
  145. package/dist/test/99.i18n.d.ts.map +0 -1
  146. package/dist/test/99.i18n.js.map +0 -1
  147. package/test/00.transfer.ts +0 -134
  148. package/test/10.reference.ts +0 -82
  149. /package/dist/test/{05.global.d.ts → 20.intrinsics/05.global.d.ts} +0 -0
  150. /package/dist/test/{10.reference.d.ts → 20.intrinsics/10.reference.d.ts} +0 -0
  151. /package/dist/test/{50.timers.d.ts → 50.features/50.timers.d.ts} +0 -0
@@ -1,8 +1,8 @@
1
1
  import { __addDisposableResource, __disposeResources } from "tslib";
2
2
  import * as assert from "node:assert/strict";
3
3
  import { describe, test } from "node:test";
4
- import * as ivm from "@isolated-vm/experimental";
5
- import { injectAssert, unsafeEvalAsString, unsafeEvalAsStringInRealm } from "./fixtures.js";
4
+ import { Agent, expect } from "@isolated-vm/experimental";
5
+ import { injectAssert, unsafeEvalAsString, unsafeEvalAsStringInRealm } from "@isolated-vm/experimental/test/fixtures";
6
6
  const hostSupportsSharedArraySupport =
7
7
  // @ts-expect-error
8
8
  process.isBun === undefined && process.versions.deno === undefined;
@@ -10,7 +10,7 @@ await describe("array buffer", async () => {
10
10
  await describe("transfer out", async () => {
11
11
  const env_1 = { stack: [], error: void 0, hasError: false };
12
12
  try {
13
- const agent = __addDisposableResource(env_1, await ivm.Agent.create(), true);
13
+ const agent = __addDisposableResource(env_1, await Agent.create(), true);
14
14
  const ab = await unsafeEvalAsString(agent, () => {
15
15
  const uint8 = new Uint8Array([1, 2, 3]);
16
16
  return uint8.buffer;
@@ -32,7 +32,7 @@ await describe("array buffer", async () => {
32
32
  await test("transfer out same reference", async () => {
33
33
  const env_2 = { stack: [], error: void 0, hasError: false };
34
34
  try {
35
- const agent = __addDisposableResource(env_2, await ivm.Agent.create(), true);
35
+ const agent = __addDisposableResource(env_2, await Agent.create(), true);
36
36
  const ab = await unsafeEvalAsString(agent, () => {
37
37
  // nb: also tests zero-length buffer
38
38
  const ab = new ArrayBuffer(0);
@@ -51,62 +51,67 @@ await describe("array buffer", async () => {
51
51
  }
52
52
  });
53
53
  }
54
- await test("transfer in", async () => {
55
- const env_3 = { stack: [], error: void 0, hasError: false };
56
- try {
57
- const agent = __addDisposableResource(env_3, await ivm.Agent.create(), true);
58
- const realm = await agent.createRealm();
59
- await injectAssert(agent, realm);
60
- const global = await realm.acquireGlobalObject();
61
- await global.set("ab", new Uint8Array([1, 2, 3]).buffer);
62
- await unsafeEvalAsStringInRealm(agent, realm, () => {
63
- // @ts-expect-error
64
- const uint8 = new Uint8Array(ab);
65
- assert.deepStrictEqual([...uint8], [1, 2, 3]);
66
- });
67
- }
68
- catch (e_3) {
69
- env_3.error = e_3;
70
- env_3.hasError = true;
71
- }
72
- finally {
73
- const result_3 = __disposeResources(env_3);
74
- if (result_3)
75
- await result_3;
76
- }
77
- });
78
- await test("transfer in same reference", async () => {
79
- const env_4 = { stack: [], error: void 0, hasError: false };
80
- try {
81
- const agent = __addDisposableResource(env_4, await ivm.Agent.create(), true);
82
- const realm = await agent.createRealm();
83
- await injectAssert(agent, realm);
84
- const global = await realm.acquireGlobalObject();
85
- const ab = new ArrayBuffer(0);
86
- await global.set("abs", [ab, ab]);
87
- await unsafeEvalAsStringInRealm(agent, realm, () => {
88
- // @ts-expect-error
89
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
90
- assert.strictEqual(abs[0], abs[1]);
91
- });
92
- }
93
- catch (e_4) {
94
- env_4.error = e_4;
95
- env_4.hasError = true;
96
- }
97
- finally {
98
- const result_4 = __disposeResources(env_4);
99
- if (result_4)
100
- await result_4;
101
- }
102
- });
54
+ // These tests work individually in Deno but something about the test runner is choking when run
55
+ // in the suite.
56
+ if (process.versions.deno === undefined) {
57
+ await test("transfer in", async () => {
58
+ const env_3 = { stack: [], error: void 0, hasError: false };
59
+ try {
60
+ const agent = __addDisposableResource(env_3, await Agent.create(), true);
61
+ const realm = expect(await agent.createRealm());
62
+ await injectAssert(agent, realm);
63
+ const global = await realm.acquireGlobalObject();
64
+ await global.set("ab", new Uint8Array([1, 2, 3]).buffer);
65
+ await unsafeEvalAsStringInRealm(agent, realm, () => {
66
+ // @ts-expect-error
67
+ const uint8 = new Uint8Array(ab);
68
+ assert.deepStrictEqual([...uint8], [1, 2, 3]);
69
+ });
70
+ await agent.disposeAsync();
71
+ }
72
+ catch (e_3) {
73
+ env_3.error = e_3;
74
+ env_3.hasError = true;
75
+ }
76
+ finally {
77
+ const result_3 = __disposeResources(env_3);
78
+ if (result_3)
79
+ await result_3;
80
+ }
81
+ });
82
+ await test("transfer in same reference", async () => {
83
+ const env_4 = { stack: [], error: void 0, hasError: false };
84
+ try {
85
+ const agent = __addDisposableResource(env_4, await Agent.create(), true);
86
+ const realm = expect(await agent.createRealm());
87
+ await injectAssert(agent, realm);
88
+ const global = await realm.acquireGlobalObject();
89
+ const ab = new ArrayBuffer(0);
90
+ await global.set("abs", [ab, ab]);
91
+ await unsafeEvalAsStringInRealm(agent, realm, () => {
92
+ // @ts-expect-error
93
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
94
+ assert.strictEqual(abs[0], abs[1]);
95
+ });
96
+ }
97
+ catch (e_4) {
98
+ env_4.error = e_4;
99
+ env_4.hasError = true;
100
+ }
101
+ finally {
102
+ const result_4 = __disposeResources(env_4);
103
+ if (result_4)
104
+ await result_4;
105
+ }
106
+ });
107
+ }
103
108
  });
104
109
  await describe("shared array buffer", async () => {
105
110
  if (hostSupportsSharedArraySupport) {
106
111
  await describe("transfer out", async () => {
107
112
  const env_5 = { stack: [], error: void 0, hasError: false };
108
113
  try {
109
- const agent = __addDisposableResource(env_5, await ivm.Agent.create(), true);
114
+ const agent = __addDisposableResource(env_5, await Agent.create(), true);
110
115
  const realm = await agent.createRealm();
111
116
  const sab = await unsafeEvalAsStringInRealm(agent, realm, () => {
112
117
  const sab = new SharedArrayBuffer(3);
@@ -141,7 +146,7 @@ await describe("shared array buffer", async () => {
141
146
  await test("transfer out same reference", async () => {
142
147
  const env_6 = { stack: [], error: void 0, hasError: false };
143
148
  try {
144
- const agent = __addDisposableResource(env_6, await ivm.Agent.create(), true);
149
+ const agent = __addDisposableResource(env_6, await Agent.create(), true);
145
150
  const ab = await unsafeEvalAsString(agent, () => {
146
151
  // nb: also tests zero-length buffer
147
152
  const sab = new SharedArrayBuffer(0);
@@ -162,8 +167,8 @@ await describe("shared array buffer", async () => {
162
167
  await test("transfer in", async () => {
163
168
  const env_7 = { stack: [], error: void 0, hasError: false };
164
169
  try {
165
- const agent = __addDisposableResource(env_7, await ivm.Agent.create(), true);
166
- const realm = await agent.createRealm();
170
+ const agent = __addDisposableResource(env_7, await Agent.create(), true);
171
+ const realm = expect(await agent.createRealm());
167
172
  await injectAssert(agent, realm);
168
173
  const global = await realm.acquireGlobalObject();
169
174
  const sab = new SharedArrayBuffer(3);
@@ -191,8 +196,8 @@ await describe("shared array buffer", async () => {
191
196
  await test("transfer in same reference", async () => {
192
197
  const env_8 = { stack: [], error: void 0, hasError: false };
193
198
  try {
194
- const agent = __addDisposableResource(env_8, await ivm.Agent.create(), true);
195
- const realm = await agent.createRealm();
199
+ const agent = __addDisposableResource(env_8, await Agent.create(), true);
200
+ const realm = expect(await agent.createRealm());
196
201
  await injectAssert(agent, realm);
197
202
  const global = await realm.acquireGlobalObject();
198
203
  const ab = new ArrayBuffer(0);
@@ -221,7 +226,7 @@ await describe("shared array buffer", async () => {
221
226
  await test("transfer out", async () => {
222
227
  const env_9 = { stack: [], error: void 0, hasError: false };
223
228
  try {
224
- const agent = __addDisposableResource(env_9, await ivm.Agent.create(), true);
229
+ const agent = __addDisposableResource(env_9, await Agent.create(), true);
225
230
  const [uint8, uint8_copy] = await unsafeEvalAsString(agent, () => {
226
231
  const uint8 = new Uint8Array([1, 2, 3]);
227
232
  return [uint8, new Uint8Array(uint8.buffer)];
@@ -243,8 +248,8 @@ await describe("typed array", async () => {
243
248
  await test("transfer in", async () => {
244
249
  const env_10 = { stack: [], error: void 0, hasError: false };
245
250
  try {
246
- const agent = __addDisposableResource(env_10, await ivm.Agent.create(), true);
247
- const realm = await agent.createRealm();
251
+ const agent = __addDisposableResource(env_10, await Agent.create(), true);
252
+ const realm = expect(await agent.createRealm());
248
253
  await injectAssert(agent, realm);
249
254
  const global = await realm.acquireGlobalObject();
250
255
  const uint8 = new Uint8Array([1, 2, 3]);
@@ -270,7 +275,7 @@ await describe("typed array", async () => {
270
275
  await test("shared transfer out", async () => {
271
276
  const env_11 = { stack: [], error: void 0, hasError: false };
272
277
  try {
273
- const agent = __addDisposableResource(env_11, await ivm.Agent.create(), true);
278
+ const agent = __addDisposableResource(env_11, await Agent.create(), true);
274
279
  const [shared_uint8, shared_uint8_copy] = await unsafeEvalAsString(agent, () => {
275
280
  const sab = new SharedArrayBuffer(3);
276
281
  const uint8 = new Uint8Array(sab);
@@ -293,4 +298,4 @@ await describe("typed array", async () => {
293
298
  });
294
299
  }
295
300
  });
296
- //# sourceMappingURL=20.array_buffer.js.map
301
+ //# sourceMappingURL=10.array_buffer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"10.array_buffer.js","sourceRoot":"","sources":["../../../test/10.transfer/10.array_buffer.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AAEtH,MAAM,8BAA8B;AACnC,mBAAmB;AACnB,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC;AAEpE,MAAM,QAAQ,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;IACzC,MAAM,QAAQ,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;;;YACzC,MAAY,KAAK,kCAAG,MAAM,KAAK,CAAC,MAAM,EAAE,OAAA,CAAC;YACzC,MAAM,EAAE,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE;gBAC/C,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAC;gBAC1C,OAAO,KAAK,CAAC,MAAM,CAAC;YACrB,CAAC,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;YACjC,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAC,CAAC;;;;;;;;;;;KAC3D,CAAC,CAAC;IAEH,IAAI,8BAA8B,EAAE,CAAC;QACpC,MAAM,IAAI,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;;;gBACpD,MAAY,KAAK,kCAAG,MAAM,KAAK,CAAC,MAAM,EAAE,OAAA,CAAC;gBACzC,MAAM,EAAE,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE;oBAC/C,oCAAoC;oBACpC,MAAM,EAAE,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;oBAC9B,OAAO,CAAE,EAAE,EAAE,EAAE,CAAE,CAAC;gBACnB,CAAC,CAAC,CAAC;gBACH,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;;;;;;;;;;;SACjC,CAAC,CAAC;IACJ,CAAC;IAED,gGAAgG;IAChG,gBAAgB;IAChB,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACzC,MAAM,IAAI,CAAC,aAAa,EAAE,KAAK,IAAI,EAAE;;;gBACpC,MAAY,KAAK,kCAAG,MAAM,KAAK,CAAC,MAAM,EAAE,OAAA,CAAC;gBACzC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;gBAChD,MAAM,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBACjC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,mBAAmB,EAAE,CAAC;gBACjD,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAC,MAAM,CAAC,CAAC;gBAC3D,MAAM,yBAAyB,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE;oBAClD,mBAAmB;oBACnB,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;oBACjC,MAAM,CAAC,eAAe,CAAC,CAAE,GAAG,KAAK,CAAE,EAAE,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAC;gBACnD,CAAC,CAAC,CAAC;gBACH,MAAM,KAAK,CAAC,YAAY,EAAE,CAAC;;;;;;;;;;;SAC3B,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;;;gBACnD,MAAY,KAAK,kCAAG,MAAM,KAAK,CAAC,MAAM,EAAE,OAAA,CAAC;gBACzC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;gBAChD,MAAM,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBACjC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,mBAAmB,EAAE,CAAC;gBACjD,MAAM,EAAE,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;gBAC9B,MAAM,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,CAAE,EAAE,EAAE,EAAE,CAAE,CAAC,CAAC;gBACpC,MAAM,yBAAyB,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE;oBACnD,mBAAmB;oBACnB,sEAAsE;oBACrE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpC,CAAC,CAAC,CAAC;;;;;;;;;;;SACH,CAAC,CAAC;IACJ,CAAC;AACF,CAAC,CAAC,CAAC;AAEH,MAAM,QAAQ,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE;IAChD,IAAI,8BAA8B,EAAE,CAAC;QACpC,MAAM,QAAQ,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;;;gBACzC,MAAY,KAAK,kCAAG,MAAM,KAAK,CAAC,MAAM,EAAE,OAAA,CAAC;gBACzC,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC;gBACxC,MAAM,GAAG,GAAG,MAAM,yBAAyB,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE;oBAC9D,MAAM,GAAG,GAAG,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC;oBACrC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;oBAClC,KAAK,CAAC,GAAG,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAC;oBACvB,mBAAmB;oBACnB,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC;oBACzB,OAAO,GAAG,CAAC;gBACZ,CAAC,CAAC,CAAC;gBACH,MAAM,CAAC,EAAE,CAAC,GAAG,YAAY,iBAAiB,CAAC,CAAC;gBAC5C,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;gBAClC,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAC,CAAC;gBAC3D,KAAK,CAAC,GAAG,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAC;gBACvB,MAAM,IAAI,GAAG,MAAM,yBAAyB,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE;oBAChE,mBAAmB;oBACnB,mEAAmE;oBAClE,MAAM,KAAK,GAAe,UAAU,CAAC,KAAK,CAAC;oBAC3C,OAAO,CAAE,GAAG,KAAK,CAAE,CAAC;gBACrB,CAAC,CAAC,CAAC;gBACH,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAC;;;;;;;;;;;SAC1C,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;;;gBACpD,MAAY,KAAK,kCAAG,MAAM,KAAK,CAAC,MAAM,EAAE,OAAA,CAAC;gBACzC,MAAM,EAAE,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE;oBAC/C,oCAAoC;oBACpC,MAAM,GAAG,GAAG,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC;oBACrC,OAAO,CAAE,GAAG,EAAE,GAAG,CAAE,CAAC;gBACrB,CAAC,CAAC,CAAC;gBACH,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;;;;;;;;;;;SACjC,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,aAAa,EAAE,KAAK,IAAI,EAAE;;;gBACpC,MAAY,KAAK,kCAAG,MAAM,KAAK,CAAC,MAAM,EAAE,OAAA,CAAC;gBACzC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;gBAChD,MAAM,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBACjC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,mBAAmB,EAAE,CAAC;gBACjD,MAAM,GAAG,GAAG,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC;gBACrC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;gBAClC,KAAK,CAAC,GAAG,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAC;gBACvB,MAAM,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBAC7B,MAAM,yBAAyB,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE;oBAClD,mBAAmB;oBACnB,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;oBAC7C,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,YAAY,iBAAiB,CAAC,CAAC;oBACrD,MAAM,CAAC,eAAe,CAAC,CAAE,GAAG,KAAK,CAAE,EAAE,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAC;gBACnD,CAAC,CAAC,CAAC;;;;;;;;;;;SACH,CAAC,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;;;YACnD,MAAY,KAAK,kCAAG,MAAM,KAAK,CAAC,MAAM,EAAE,OAAA,CAAC;YACzC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;YAChD,MAAM,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACjC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,mBAAmB,EAAE,CAAC;YACjD,MAAM,EAAE,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,CAAE,EAAE,EAAE,EAAE,CAAE,CAAC,CAAC;YACpC,MAAM,yBAAyB,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE;gBAClD,mBAAmB;gBACnB,sEAAsE;gBACtE,MAAM,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,sBAAsB,CAAC,CAAC;gBACxD,mBAAmB;gBACnB,sEAAsE;gBACtE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;;;;;;;;;;;KACH,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,uDAAuD;AACvD,MAAM,IAAI,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;;;QACrC,MAAY,KAAK,kCAAG,MAAM,KAAK,CAAC,MAAM,EAAE,OAAA,CAAC;QACzC,MAAM,CAAE,KAAK,EAAE,UAAU,CAAE,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE;YAClE,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAC;YAC1C,OAAO,CAAE,KAAK,EAAE,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAE,CAAC;QAChD,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAC,CAAC;QAC3D,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;;;;;;;;;;;CACpD,CAAC,CAAC;AAEH,MAAM,QAAQ,CAAC,aAAa,EAAE,KAAK,IAAI,EAAE;IACxC,MAAM,IAAI,CAAC,aAAa,EAAE,KAAK,IAAI,EAAE;;;YACpC,MAAY,KAAK,mCAAG,MAAM,KAAK,CAAC,MAAM,EAAE,OAAA,CAAC;YACzC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;YAChD,MAAM,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACjC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,mBAAmB,EAAE,CAAC;YACjD,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAC;YAC1C,KAAK,CAAC,GAAG,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAC;YACvB,MAAM,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACjC,MAAM,yBAAyB,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE;gBAClD,mBAAmB;gBACnB,mEAAmE;gBACnE,MAAM,CAAC,eAAe,CAAC,CAAE,GAAG,UAAU,CAAC,KAAK,CAAE,EAAE,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAC;YAC9D,CAAC,CAAC,CAAC;;;;;;;;;;;KACH,CAAC,CAAC;IAEH,IAAI,8BAA8B,EAAE,CAAC;QACpC,MAAM,IAAI,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE;;;gBAC5C,MAAY,KAAK,mCAAG,MAAM,KAAK,CAAC,MAAM,EAAE,OAAA,CAAC;gBACzC,MAAM,CAAE,YAAY,EAAE,iBAAiB,CAAE,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE;oBAChF,MAAM,GAAG,GAAG,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC;oBACrC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;oBAClC,KAAK,CAAC,GAAG,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAC;oBACvB,OAAO,CAAE,KAAK,EAAE,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAE,CAAC;gBAChD,CAAC,CAAC,CAAC;gBACH,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,YAAY,iBAAiB,CAAC,CAAC;gBAC5D,MAAM,CAAC,eAAe,CAAC,YAAY,EAAE,IAAI,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAC,CAAC;gBAClE,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;;;;;;;;;;;SAClE,CAAC,CAAC;IACJ,CAAC;AACF,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import "@isolated-vm/experimental/test/fixtures";
2
+ //# sourceMappingURL=90.regressions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"90.regressions.d.ts","sourceRoot":"","sources":["../../../test/10.transfer/90.regressions.ts"],"names":[],"mappings":"AAEA,OAAO,yCAAyC,CAAC"}
@@ -0,0 +1,72 @@
1
+ import { __addDisposableResource, __disposeResources } from "tslib";
2
+ import { test } from "node:test";
3
+ import { Agent, expect } from "@isolated-vm/experimental";
4
+ import "@isolated-vm/experimental/test/fixtures";
5
+ const hostSupportsSharedArraySupport =
6
+ // @ts-expect-error
7
+ process.isBun === undefined && process.versions.deno === undefined;
8
+ // TODO: deno fails when this is in the `describe` (??)
9
+ await test("numeric references", async () => {
10
+ const env_1 = { stack: [], error: void 0, hasError: false };
11
+ try {
12
+ const agent = __addDisposableResource(env_1, await Agent.create(), true);
13
+ const realm = expect(await agent.createRealm());
14
+ const global = await realm.acquireGlobalObject();
15
+ // doubles are stored as references in `value_t`, because they are bigger than 32-bit. there was
16
+ // a failure with more than one of them in the same transfer operation.
17
+ expect(await global.set("xx", { zero: 0.1, one: 0.2 }));
18
+ }
19
+ catch (e_1) {
20
+ env_1.error = e_1;
21
+ env_1.hasError = true;
22
+ }
23
+ finally {
24
+ const result_1 = __disposeResources(env_1);
25
+ if (result_1)
26
+ await result_1;
27
+ }
28
+ });
29
+ await test("numeric indices", async () => {
30
+ const env_2 = { stack: [], error: void 0, hasError: false };
31
+ try {
32
+ const agent = __addDisposableResource(env_2, await Agent.create(), true);
33
+ const realm = expect(await agent.createRealm());
34
+ const global = await realm.acquireGlobalObject();
35
+ // numeric array indices broke as part of a double to int32_t change.
36
+ expect(await global.set("xx", [false, true]));
37
+ }
38
+ catch (e_2) {
39
+ env_2.error = e_2;
40
+ env_2.hasError = true;
41
+ }
42
+ finally {
43
+ const result_2 = __disposeResources(env_2);
44
+ if (result_2)
45
+ await result_2;
46
+ }
47
+ });
48
+ if (hostSupportsSharedArraySupport) {
49
+ await test("seen index type", async () => {
50
+ const env_3 = { stack: [], error: void 0, hasError: false };
51
+ try {
52
+ const agent = __addDisposableResource(env_3, await Agent.create(), true);
53
+ const realm = expect(await agent.createRealm());
54
+ const global = await realm.acquireGlobalObject();
55
+ const payload = {
56
+ number: 0,
57
+ buffer: [new Uint8Array(new SharedArrayBuffer(0))],
58
+ };
59
+ expect(await global.set("xx", [payload]));
60
+ }
61
+ catch (e_3) {
62
+ env_3.error = e_3;
63
+ env_3.hasError = true;
64
+ }
65
+ finally {
66
+ const result_3 = __disposeResources(env_3);
67
+ if (result_3)
68
+ await result_3;
69
+ }
70
+ });
71
+ }
72
+ //# sourceMappingURL=90.regressions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"90.regressions.js","sourceRoot":"","sources":["../../../test/10.transfer/90.regressions.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,yCAAyC,CAAC;AAEjD,MAAM,8BAA8B;AACnC,mBAAmB;AACnB,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC;AAEpE,uDAAuD;AACvD,MAAM,IAAI,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;;;QAC3C,MAAY,KAAK,kCAAG,MAAM,KAAK,CAAC,MAAM,EAAE,OAAA,CAAC;QACzC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,mBAAmB,EAAE,CAAC;QACjD,gGAAgG;QAChG,uEAAuE;QACvE,MAAM,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;;;;;;;;;;;CACxD,CAAC,CAAC;AAEH,MAAM,IAAI,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;;;QACxC,MAAY,KAAK,kCAAG,MAAM,KAAK,CAAC,MAAM,EAAE,OAAA,CAAC;QACzC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,mBAAmB,EAAE,CAAC;QACjD,qEAAqE;QACrE,MAAM,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAE,KAAK,EAAE,IAAI,CAAE,CAAC,CAAC,CAAC;;;;;;;;;;;CAChD,CAAC,CAAC;AAEH,IAAI,8BAA8B,EAAE,CAAC;IACpC,MAAM,IAAI,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;;;YACxC,MAAY,KAAK,kCAAG,MAAM,KAAK,CAAC,MAAM,EAAE,OAAA,CAAC;YACzC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;YAChD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,mBAAmB,EAAE,CAAC;YACjD,MAAM,OAAO,GAAG;gBACf,MAAM,EAAE,CAAC;gBACT,MAAM,EAAE,CAAE,IAAI,UAAU,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAE;aACpD,CAAC;YACF,MAAM,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAE,OAAO,CAAE,CAAC,CAAC,CAAC;;;;;;;;;;;KAC5C,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=00.script.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"00.script.d.ts","sourceRoot":"","sources":["../../../test/20.intrinsics/00.script.ts"],"names":[],"mappings":""}
@@ -1,12 +1,13 @@
1
1
  import { __addDisposableResource, __disposeResources } from "tslib";
2
2
  import * as assert from "node:assert/strict";
3
3
  import { test } from "node:test";
4
- import * as ivm from "@isolated-vm/experimental";
5
- import { expectComplete, expectThrow, unsafeEvalAsStringInRealm, unsafeIIFEAsString } from "./fixtures.js";
4
+ import { Agent } from "@isolated-vm/experimental";
5
+ import { expectComplete, expectThrow, unsafeEvalAsStringInRealm, unsafeIIFEAsString } from "@isolated-vm/experimental/test/fixtures";
6
+ const illegalAccess = new Error("illegal access");
6
7
  await test("script source origin", async () => {
7
8
  const env_1 = { stack: [], error: void 0, hasError: false };
8
9
  try {
9
- const agent = __addDisposableResource(env_1, await ivm.Agent.create(), true);
10
+ const agent = __addDisposableResource(env_1, await Agent.create(), true);
10
11
  const script = expectComplete(await agent.compileScript(unsafeIIFEAsString(() => {
11
12
  try {
12
13
  throw new Error();
@@ -39,7 +40,7 @@ await test("script source origin", async () => {
39
40
  await test("script which throws", async () => {
40
41
  const env_2 = { stack: [], error: void 0, hasError: false };
41
42
  try {
42
- const agent = __addDisposableResource(env_2, await ivm.Agent.create(), true);
43
+ const agent = __addDisposableResource(env_2, await Agent.create(), true);
43
44
  const realm = await agent.createRealm();
44
45
  const script = expectComplete(await agent.compileScript("throw new Error('wow');", { origin: { name: "test:script" } }));
45
46
  const error = expectThrow(await script.run(realm));
@@ -59,7 +60,7 @@ await test("script which throws", async () => {
59
60
  await test("script with syntax error", async () => {
60
61
  const env_3 = { stack: [], error: void 0, hasError: false };
61
62
  try {
62
- const agent = __addDisposableResource(env_3, await ivm.Agent.create(), true);
63
+ const agent = __addDisposableResource(env_3, await Agent.create(), true);
63
64
  const error = expectThrow(await agent.compileScript("}"));
64
65
  // @ts-expect-error
65
66
  const message = error.message;
@@ -79,7 +80,7 @@ await test("script with syntax error", async () => {
79
80
  await test("script which returns a circular object", async () => {
80
81
  const env_4 = { stack: [], error: void 0, hasError: false };
81
82
  try {
82
- const agent = __addDisposableResource(env_4, await ivm.Agent.create(), true);
83
+ const agent = __addDisposableResource(env_4, await Agent.create(), true);
83
84
  const realm = await agent.createRealm();
84
85
  const result = await unsafeEvalAsStringInRealm(agent, realm, () => {
85
86
  const date = new Date();
@@ -104,4 +105,28 @@ await test("script which returns a circular object", async () => {
104
105
  await result_4;
105
106
  }
106
107
  });
107
- //# sourceMappingURL=10.script.js.map
108
+ await test("script result should not invoke interceptors", async () => {
109
+ const env_5 = { stack: [], error: void 0, hasError: false };
110
+ try {
111
+ const agent = __addDisposableResource(env_5, await Agent.create(), true);
112
+ const realm = await agent.createRealm();
113
+ const script = expectComplete(await agent.compileScript(unsafeIIFEAsString(() => {
114
+ const object = Object.defineProperty({ name: "value" }, "name", {
115
+ enumerable: true,
116
+ get() { throw new Error("interceptor invoked"); },
117
+ });
118
+ return object;
119
+ })));
120
+ await assert.rejects(async () => expectComplete(await script.run(realm)), illegalAccess);
121
+ }
122
+ catch (e_5) {
123
+ env_5.error = e_5;
124
+ env_5.hasError = true;
125
+ }
126
+ finally {
127
+ const result_5 = __disposeResources(env_5);
128
+ if (result_5)
129
+ await result_5;
130
+ }
131
+ });
132
+ //# sourceMappingURL=00.script.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"00.script.js","sourceRoot":"","sources":["../../../test/20.intrinsics/00.script.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"05.global.d.ts","sourceRoot":"","sources":["../../../test/20.intrinsics/05.global.ts"],"names":[],"mappings":""}
@@ -1,19 +1,19 @@
1
1
  import { __addDisposableResource, __disposeResources } from "tslib";
2
2
  import * as assert from "node:assert/strict";
3
3
  import { test } from "node:test";
4
- import * as ivm from "@isolated-vm/experimental";
5
- import { unsafeEvalAsStringInRealm } from "./fixtures.js";
4
+ import { Agent, expect } from "@isolated-vm/experimental";
5
+ import { unsafeEvalAsStringInRealm } from "@isolated-vm/experimental/test/fixtures";
6
6
  await test("realm global reference", async () => {
7
7
  const env_1 = { stack: [], error: void 0, hasError: false };
8
8
  try {
9
- const agent = __addDisposableResource(env_1, await ivm.Agent.create(), true);
10
- const realm = await agent.createRealm();
9
+ const agent = __addDisposableResource(env_1, await Agent.create(), true);
10
+ const realm = expect(await agent.createRealm());
11
11
  await unsafeEvalAsStringInRealm(agent, realm, () => {
12
12
  // @ts-expect-error
13
13
  globalThis.test = 123;
14
14
  });
15
15
  const global = await realm.acquireGlobalObject();
16
- const property = await global.get("test");
16
+ const property = expect(await global.get("test"));
17
17
  const value = await property.copy();
18
18
  assert.equal(value, 123);
19
19
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"05.global.js","sourceRoot":"","sources":["../../../test/20.intrinsics/05.global.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AAEpF,MAAM,IAAI,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;;;QAC/C,MAAY,KAAK,kCAAG,MAAM,KAAK,CAAC,MAAM,EAAE,OAAA,CAAC;QACzC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QAChD,MAAM,yBAAyB,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE;YAClD,mBAAmB;YACnB,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC;QACvB,CAAC,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,mBAAmB,EAAE,CAAC;QACjD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QAClD,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;;;;;;;;;;;CACzB,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"10.reference.d.ts","sourceRoot":"","sources":["../../../test/20.intrinsics/10.reference.ts"],"names":[],"mappings":""}
@@ -1,13 +1,14 @@
1
1
  import { __addDisposableResource, __disposeResources } from "tslib";
2
2
  import * as assert from "node:assert/strict";
3
3
  import { test } from "node:test";
4
- import * as ivm from "@isolated-vm/experimental";
5
- import { expectComplete, unsafeEvalAsStringInRealm } from "./fixtures.js";
4
+ import { Agent, expect } from "@isolated-vm/experimental";
5
+ import { expectComplete, unsafeEvalAsStringInRealm } from "@isolated-vm/experimental/test/fixtures";
6
+ const illegalAccess = new Error("illegal access");
6
7
  await test("function reference invoke", async () => {
7
8
  const env_1 = { stack: [], error: void 0, hasError: false };
8
9
  try {
9
- const agent = __addDisposableResource(env_1, await ivm.Agent.create(), true);
10
- const realm = await agent.createRealm();
10
+ const agent = __addDisposableResource(env_1, await Agent.create(), true);
11
+ const realm = expect(await agent.createRealm());
11
12
  await unsafeEvalAsStringInRealm(agent, realm, () => {
12
13
  // @ts-expect-error
13
14
  globalThis.fn = () => "wow";
@@ -30,8 +31,8 @@ await test("function reference invoke", async () => {
30
31
  await test("invoke function cross-param reference", async () => {
31
32
  const env_2 = { stack: [], error: void 0, hasError: false };
32
33
  try {
33
- const agent = __addDisposableResource(env_2, await ivm.Agent.create(), true);
34
- const realm = await agent.createRealm();
34
+ const agent = __addDisposableResource(env_2, await Agent.create(), true);
35
+ const realm = expect(await agent.createRealm());
35
36
  await unsafeEvalAsStringInRealm(agent, realm, () => {
36
37
  // @ts-expect-error
37
38
  globalThis.fn = (...values) => values;
@@ -56,8 +57,8 @@ await test("invoke function cross-param reference", async () => {
56
57
  await test("invoke function reference with circular object", async () => {
57
58
  const env_3 = { stack: [], error: void 0, hasError: false };
58
59
  try {
59
- const agent = __addDisposableResource(env_3, await ivm.Agent.create(), true);
60
- const realm = await agent.createRealm();
60
+ const agent = __addDisposableResource(env_3, await Agent.create(), true);
61
+ const realm = expect(await agent.createRealm());
61
62
  await unsafeEvalAsStringInRealm(agent, realm, () => {
62
63
  // @ts-expect-error
63
64
  globalThis.fn = (value) => value;
@@ -90,29 +91,20 @@ await test("invoke function reference with circular object", async () => {
90
91
  await test("get & set should not invoke proxies", async () => {
91
92
  const env_4 = { stack: [], error: void 0, hasError: false };
92
93
  try {
93
- const agent = __addDisposableResource(env_4, await ivm.Agent.create(), true);
94
- const realm = await agent.createRealm();
94
+ const agent = __addDisposableResource(env_4, await Agent.create(), true);
95
+ const realm = expect(await agent.createRealm());
95
96
  await unsafeEvalAsStringInRealm(agent, realm, () => {
96
- // @ts-expect-error
97
- globalThis.prox = new Proxy({}, {
98
- // @ts-expect-error
99
- get() { globalThis.failed = true; },
100
- // @ts-expect-error
101
- set() { globalThis.failed = true; },
97
+ const proxy = new Proxy({}, {
98
+ get() { throw new Error("interceptor invoked"); },
99
+ set() { throw new Error("interceptor invoked"); },
102
100
  });
103
- });
104
- const global = await realm.acquireGlobalObject();
105
- const prox = await global.get("prox");
106
- await prox.get("name");
107
- assert.equal(await (await global.get("failed")).copy(), undefined);
108
- await prox.set("name", undefined);
109
- assert.equal(await (await global.get("failed")).copy(), undefined);
110
- // sanity check
111
- await unsafeEvalAsStringInRealm(agent, realm, () => {
112
101
  // @ts-expect-error
113
- globalThis.failed = true;
102
+ globalThis.proxy = proxy;
114
103
  });
115
- assert.equal(await (await global.get("failed")).copy(), true);
104
+ const global = await realm.acquireGlobalObject();
105
+ const proxy = expect(await global.get("proxy"));
106
+ expect(await proxy.get("name"));
107
+ expect(await proxy.set("name", undefined));
116
108
  }
117
109
  catch (e_4) {
118
110
  env_4.error = e_4;
@@ -124,4 +116,58 @@ await test("get & set should not invoke proxies", async () => {
124
116
  await result_4;
125
117
  }
126
118
  });
119
+ await test("copy should not invoke interceptors", async () => {
120
+ const env_5 = { stack: [], error: void 0, hasError: false };
121
+ try {
122
+ const agent = __addDisposableResource(env_5, await Agent.create(), true);
123
+ const realm = await agent.createRealm();
124
+ await unsafeEvalAsStringInRealm(agent, realm, () => {
125
+ const object = Object.defineProperty({}, "name", {
126
+ enumerable: true,
127
+ get() { throw new Error("interceptor invoked"); },
128
+ });
129
+ // @ts-expect-error
130
+ globalThis.object = object;
131
+ });
132
+ const global = await realm?.acquireGlobalObject();
133
+ const object = await global?.get("object");
134
+ await assert.rejects(async () => object?.copy(), illegalAccess);
135
+ }
136
+ catch (e_5) {
137
+ env_5.error = e_5;
138
+ env_5.hasError = true;
139
+ }
140
+ finally {
141
+ const result_5 = __disposeResources(env_5);
142
+ if (result_5)
143
+ await result_5;
144
+ }
145
+ });
146
+ await test("invoke should not invoke interceptors", async () => {
147
+ const env_6 = { stack: [], error: void 0, hasError: false };
148
+ try {
149
+ const agent = __addDisposableResource(env_6, await Agent.create(), true);
150
+ const realm = await agent.createRealm();
151
+ await unsafeEvalAsStringInRealm(agent, realm, () => {
152
+ // @ts-expect-error
153
+ globalThis.fn = () => { };
154
+ // eslint-disable-next-line no-extend-native
155
+ Object.defineProperty(Object.prototype, "name", {
156
+ set() { throw new Error("interceptor invoked"); },
157
+ });
158
+ });
159
+ const global = await realm?.acquireGlobalObject();
160
+ const fn = await global?.get("fn");
161
+ await assert.rejects(async () => expectComplete(await fn?.invoke([{ name: "value" }])), illegalAccess);
162
+ }
163
+ catch (e_6) {
164
+ env_6.error = e_6;
165
+ env_6.hasError = true;
166
+ }
167
+ finally {
168
+ const result_6 = __disposeResources(env_6);
169
+ if (result_6)
170
+ await result_6;
171
+ }
172
+ });
127
173
  //# sourceMappingURL=10.reference.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"10.reference.js","sourceRoot":"","sources":["../../../test/20.intrinsics/10.reference.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=20.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20.module.d.ts","sourceRoot":"","sources":["../../../test/20.intrinsics/20.module.ts"],"names":[],"mappings":""}