@isolated-vm/experimental 0.0.9 → 0.0.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.
- package/addon/CMakeLists.txt +1 -1
- package/addon/handle/local_of.cc +150 -0
- package/addon/handle/types.cc +8 -137
- package/addon/handle/value_of.cc +82 -27
- package/addon/support/callback_info.cc +5 -5
- package/addon/support/callback_storage.cc +2 -2
- package/addon/support/free_function.cc +2 -2
- package/addon/support/initialize.cc +2 -2
- package/addon/transfer/accept.cc +84 -64
- package/addon/transfer/visit.cc +90 -47
- package/addon/value/array.cc +6 -6
- package/addon/value/array_buffer.cc +27 -18
- package/addon/value/function.cc +5 -5
- package/addon/value/function.h.cc +5 -5
- package/addon/value/object.cc +3 -3
- package/addon/value/primitive.cc +36 -36
- package/addon/value/prototype.cc +7 -7
- package/addon/value/record.cc +20 -20
- package/addon/value/value.cc +1 -1
- package/addon/value/vector.cc +9 -9
- package/backend/backend.d.cts +9 -9
- package/dist/frontend/agent.d.ts +1 -0
- package/dist/frontend/agent.d.ts.map +1 -1
- package/dist/frontend/agent.js.map +1 -1
- package/dist/frontend/module.d.ts +1 -1
- package/dist/frontend/module.d.ts.map +1 -1
- package/dist/frontend/module.js.map +1 -1
- package/dist/frontend/reference.d.ts +3 -3
- package/dist/frontend/reference.d.ts.map +1 -1
- package/dist/test/00.agent/00.prerequisites.d.ts +2 -0
- package/dist/test/00.agent/00.prerequisites.d.ts.map +1 -0
- package/dist/test/00.agent/00.prerequisites.js +25 -0
- package/dist/test/00.agent/00.prerequisites.js.map +1 -0
- package/dist/test/00.agent/10.clock.d.ts +2 -0
- package/dist/test/00.agent/10.clock.d.ts.map +1 -0
- package/dist/test/{00.datetime.js → 00.agent/10.clock.js} +8 -8
- package/dist/test/00.agent/10.clock.js.map +1 -0
- package/dist/test/00.agent/10.random.d.ts +2 -0
- package/dist/test/00.agent/10.random.d.ts.map +1 -0
- package/dist/test/{00.random.js → 00.agent/10.random.js} +4 -4
- package/dist/test/00.agent/10.random.js.map +1 -0
- package/dist/test/10.transfer/00.primitives.d.ts +2 -0
- package/dist/test/10.transfer/00.primitives.d.ts.map +1 -0
- package/dist/test/10.transfer/00.primitives.js +54 -0
- package/dist/test/10.transfer/00.primitives.js.map +1 -0
- package/dist/test/10.transfer/10.array_buffer.d.ts +2 -0
- package/dist/test/10.transfer/10.array_buffer.d.ts.map +1 -0
- package/dist/test/{20.array_buffer.js → 10.transfer/10.array_buffer.js} +69 -64
- package/dist/test/10.transfer/10.array_buffer.js.map +1 -0
- package/dist/test/10.transfer/50.interceptors.d.ts +2 -0
- package/dist/test/10.transfer/50.interceptors.d.ts.map +1 -0
- package/dist/test/10.transfer/50.interceptors.js +108 -0
- package/dist/test/10.transfer/50.interceptors.js.map +1 -0
- package/dist/test/10.transfer/90.regressions.d.ts +2 -0
- package/dist/test/10.transfer/90.regressions.d.ts.map +1 -0
- package/dist/test/10.transfer/90.regressions.js +72 -0
- package/dist/test/10.transfer/90.regressions.js.map +1 -0
- package/dist/test/20.intrinsics/00.script.d.ts +2 -0
- package/dist/test/20.intrinsics/00.script.d.ts.map +1 -0
- package/dist/test/{10.script.js → 20.intrinsics/00.script.js} +7 -7
- package/dist/test/20.intrinsics/00.script.js.map +1 -0
- package/dist/test/20.intrinsics/05.global.d.ts.map +1 -0
- package/dist/test/{05.global.js → 20.intrinsics/05.global.js} +5 -5
- package/dist/test/20.intrinsics/05.global.js.map +1 -0
- package/dist/test/20.intrinsics/10.reference.d.ts.map +1 -0
- package/dist/test/{10.reference.js → 20.intrinsics/10.reference.js} +15 -15
- package/dist/test/20.intrinsics/10.reference.js.map +1 -0
- package/dist/test/20.intrinsics/20.module.d.ts +2 -0
- package/dist/test/20.intrinsics/20.module.d.ts.map +1 -0
- package/dist/test/{10.module.js → 20.intrinsics/20.module.js} +18 -18
- package/dist/test/20.intrinsics/20.module.js.map +1 -0
- package/dist/test/50.features/50.timers.d.ts.map +1 -0
- package/dist/test/{50.timers.js → 50.features/50.timers.js} +8 -8
- package/dist/test/50.features/50.timers.js.map +1 -0
- package/dist/test/50.features/90.i18n.d.ts +2 -0
- package/dist/test/50.features/90.i18n.d.ts.map +1 -0
- package/dist/test/{99.i18n.js → 50.features/90.i18n.js} +6 -6
- package/dist/test/50.features/90.i18n.js.map +1 -0
- package/dist/test/90.isolation/00.dispose.d.ts +1 -1
- package/dist/test/90.isolation/00.dispose.d.ts.map +1 -1
- package/dist/test/90.isolation/00.dispose.js +23 -5
- package/dist/test/90.isolation/00.dispose.js.map +1 -1
- package/dist/test/90.isolation/10.memory.d.ts +2 -0
- package/dist/test/90.isolation/10.memory.d.ts.map +1 -0
- package/dist/test/90.isolation/10.memory.js +31 -0
- package/dist/test/90.isolation/10.memory.js.map +1 -0
- package/dist/test/fixtures.js +2 -2
- package/dist/test/fixtures.js.map +1 -1
- package/dist/test/glob.d.ts +2 -0
- package/dist/test/glob.d.ts.map +1 -0
- package/dist/test/glob.js +11 -0
- package/dist/test/glob.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utility/completion.d.ts +2 -1
- package/dist/utility/completion.d.ts.map +1 -1
- package/dist/utility/completion.js +4 -0
- package/dist/utility/completion.js.map +1 -1
- package/frontend/agent.ts +1 -0
- package/frontend/module.ts +1 -1
- package/frontend/reference.ts +3 -3
- package/package.json +13 -13
- package/test/00.agent/00.prerequisites.ts +12 -0
- package/test/{00.datetime.ts → 00.agent/10.clock.ts} +7 -7
- package/test/{00.random.ts → 00.agent/10.random.ts} +3 -3
- package/test/10.transfer/00.primitives.ts +47 -0
- package/test/{20.array_buffer.ts → 10.transfer/10.array_buffer.ts} +40 -35
- package/test/10.transfer/50.interceptors.ts +63 -0
- package/test/10.transfer/90.regressions.ts +38 -0
- package/test/{10.script.ts → 20.intrinsics/00.script.ts} +6 -6
- package/test/{05.global.ts → 20.intrinsics/05.global.ts} +5 -5
- package/test/{10.reference.ts → 20.intrinsics/10.reference.ts} +18 -17
- package/test/{10.module.ts → 20.intrinsics/20.module.ts} +17 -17
- package/test/{50.timers.ts → 50.features/50.timers.ts} +8 -8
- package/test/{99.i18n.ts → 50.features/90.i18n.ts} +5 -5
- package/test/90.isolation/00.dispose.ts +12 -5
- package/test/90.isolation/10.memory.ts +19 -0
- package/test/fixtures.ts +4 -4
- package/test/glob.ts +11 -0
- package/utility/completion.ts +6 -1
- package/addon/handle/bound_value.cc +0 -45
- package/dist/test/00.datetime.d.ts +0 -2
- package/dist/test/00.datetime.d.ts.map +0 -1
- package/dist/test/00.datetime.js.map +0 -1
- package/dist/test/00.random.d.ts +0 -2
- package/dist/test/00.random.d.ts.map +0 -1
- package/dist/test/00.random.js.map +0 -1
- package/dist/test/00.transfer.d.ts +0 -2
- package/dist/test/00.transfer.d.ts.map +0 -1
- package/dist/test/00.transfer.js +0 -168
- package/dist/test/00.transfer.js.map +0 -1
- package/dist/test/05.global.d.ts.map +0 -1
- package/dist/test/05.global.js.map +0 -1
- package/dist/test/10.module.d.ts +0 -2
- package/dist/test/10.module.d.ts.map +0 -1
- package/dist/test/10.module.js.map +0 -1
- package/dist/test/10.reference.d.ts.map +0 -1
- package/dist/test/10.reference.js.map +0 -1
- package/dist/test/10.script.d.ts +0 -2
- package/dist/test/10.script.d.ts.map +0 -1
- package/dist/test/10.script.js.map +0 -1
- package/dist/test/20.array_buffer.d.ts +0 -2
- package/dist/test/20.array_buffer.d.ts.map +0 -1
- package/dist/test/20.array_buffer.js.map +0 -1
- package/dist/test/50.timers.d.ts.map +0 -1
- package/dist/test/50.timers.js.map +0 -1
- package/dist/test/99.i18n.d.ts +0 -2
- package/dist/test/99.i18n.d.ts.map +0 -1
- package/dist/test/99.i18n.js.map +0 -1
- package/test/00.transfer.ts +0 -134
- /package/dist/test/{05.global.d.ts → 20.intrinsics/05.global.d.ts} +0 -0
- /package/dist/test/{10.reference.d.ts → 20.intrinsics/10.reference.d.ts} +0 -0
- /package/dist/test/{50.timers.d.ts → 50.features/50.timers.d.ts} +0 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { __addDisposableResource, __disposeResources } from "tslib";
|
|
2
|
+
import * as assert from "node:assert/strict";
|
|
3
|
+
import { test } from "node:test";
|
|
4
|
+
import { Agent, expectComplete } from "@isolated-vm/experimental";
|
|
5
|
+
import "@isolated-vm/experimental/test/fixtures";
|
|
6
|
+
// Minimal support, without which the rest of the suites don't really make any sense.
|
|
7
|
+
await test("prerequisites", async () => {
|
|
8
|
+
const env_1 = { stack: [], error: void 0, hasError: false };
|
|
9
|
+
try {
|
|
10
|
+
const agent = __addDisposableResource(env_1, await Agent.create(), true);
|
|
11
|
+
const realm = await agent.createRealm();
|
|
12
|
+
const script = expectComplete(await agent.compileScript('"hello world";'));
|
|
13
|
+
assert.strictEqual(expectComplete(await script.run(realm)), "hello world");
|
|
14
|
+
}
|
|
15
|
+
catch (e_1) {
|
|
16
|
+
env_1.error = e_1;
|
|
17
|
+
env_1.hasError = true;
|
|
18
|
+
}
|
|
19
|
+
finally {
|
|
20
|
+
const result_1 = __disposeResources(env_1);
|
|
21
|
+
if (result_1)
|
|
22
|
+
await result_1;
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
//# sourceMappingURL=00.prerequisites.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"00.prerequisites.js","sourceRoot":"","sources":["../../../test/00.agent/00.prerequisites.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,yCAAyC,CAAC;AAEjD,qFAAqF;AACrF,MAAM,IAAI,CAAC,eAAe,EAAE,KAAK,IAAI,EAAE;;;QACtC,MAAY,KAAK,kCAAG,MAAM,KAAK,CAAC,MAAM,EAAE,OAAA,CAAC;QACzC,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC3E,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;;;;;;;;;;;CAC3E,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"10.clock.d.ts","sourceRoot":"","sources":["../../../test/00.agent/10.clock.ts"],"names":[],"mappings":""}
|
|
@@ -2,15 +2,15 @@ import { __addDisposableResource, __disposeResources } from "tslib";
|
|
|
2
2
|
import * as assert from "node:assert/strict";
|
|
3
3
|
import { test } from "node:test";
|
|
4
4
|
import { setTimeout } from "node:timers/promises";
|
|
5
|
-
import
|
|
6
|
-
import { unsafeEvalAsString, unsafeEvalAsStringInRealm } from "
|
|
5
|
+
import { Agent } from "@isolated-vm/experimental";
|
|
6
|
+
import { unsafeEvalAsString, unsafeEvalAsStringInRealm } from "@isolated-vm/experimental/test/fixtures";
|
|
7
7
|
const y2k = new Date("2000-01-01T00:00:00Z");
|
|
8
8
|
// Figure out how many loops to waste ~25ms on this build. Extra slop factor is added afterwards.
|
|
9
9
|
const speedFactorMs = 25;
|
|
10
10
|
const speedFactor = await async function () {
|
|
11
11
|
const env_1 = { stack: [], error: void 0, hasError: false };
|
|
12
12
|
try {
|
|
13
|
-
const agent = __addDisposableResource(env_1, await
|
|
13
|
+
const agent = __addDisposableResource(env_1, await Agent.create(), true);
|
|
14
14
|
return await unsafeEvalAsString(agent, speedFactorMs => Math.min(...Array(3).fill(undefined).map(() => {
|
|
15
15
|
let factor = 2 ** 20;
|
|
16
16
|
const slopFactor = 1.2;
|
|
@@ -39,7 +39,7 @@ const speedFactor = await async function () {
|
|
|
39
39
|
await test("deterministic clock", async () => {
|
|
40
40
|
const env_2 = { stack: [], error: void 0, hasError: false };
|
|
41
41
|
try {
|
|
42
|
-
const agent = __addDisposableResource(env_2, await
|
|
42
|
+
const agent = __addDisposableResource(env_2, await Agent.create({
|
|
43
43
|
clock: { type: "deterministic", epoch: y2k, interval: 1 },
|
|
44
44
|
}), true);
|
|
45
45
|
const realm = await agent.createRealm();
|
|
@@ -63,7 +63,7 @@ await test("deterministic clock", async () => {
|
|
|
63
63
|
await test("microtask clock", async () => {
|
|
64
64
|
const env_3 = { stack: [], error: void 0, hasError: false };
|
|
65
65
|
try {
|
|
66
|
-
const agent = __addDisposableResource(env_3, await
|
|
66
|
+
const agent = __addDisposableResource(env_3, await Agent.create({
|
|
67
67
|
clock: { type: "microtask", epoch: y2k },
|
|
68
68
|
}), true);
|
|
69
69
|
const realm = await agent.createRealm();
|
|
@@ -94,7 +94,7 @@ await test("microtask clock", async () => {
|
|
|
94
94
|
await test("realtime clock", async () => {
|
|
95
95
|
const env_4 = { stack: [], error: void 0, hasError: false };
|
|
96
96
|
try {
|
|
97
|
-
const agent = __addDisposableResource(env_4, await
|
|
97
|
+
const agent = __addDisposableResource(env_4, await Agent.create({
|
|
98
98
|
clock: { type: "realtime", epoch: y2k },
|
|
99
99
|
}), true);
|
|
100
100
|
const realm = await agent.createRealm();
|
|
@@ -123,7 +123,7 @@ await test("system clock", async () => {
|
|
|
123
123
|
try {
|
|
124
124
|
// `std::system_clock` on Windows returns jittering results across different CPU cores.
|
|
125
125
|
const threshold = process.platform === "win32" ? 10 : 0;
|
|
126
|
-
const agent = __addDisposableResource(env_5, await
|
|
126
|
+
const agent = __addDisposableResource(env_5, await Agent.create(), true);
|
|
127
127
|
const realm = await agent.createRealm();
|
|
128
128
|
for (let ii = 0; ii < 5; ++ii) {
|
|
129
129
|
const then = new Date();
|
|
@@ -143,4 +143,4 @@ await test("system clock", async () => {
|
|
|
143
143
|
await result_5;
|
|
144
144
|
}
|
|
145
145
|
});
|
|
146
|
-
//# sourceMappingURL=
|
|
146
|
+
//# sourceMappingURL=10.clock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"10.clock.js","sourceRoot":"","sources":["../../../test/00.agent/10.clock.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"10.random.d.ts","sourceRoot":"","sources":["../../../test/00.agent/10.random.ts"],"names":[],"mappings":""}
|
|
@@ -1,12 +1,12 @@
|
|
|
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
|
|
5
|
-
import { unsafeEvalAsString } from "
|
|
4
|
+
import { Agent } from "@isolated-vm/experimental";
|
|
5
|
+
import { unsafeEvalAsString } from "@isolated-vm/experimental/test/fixtures";
|
|
6
6
|
const makeAgentRandom = async (randomSeed) => {
|
|
7
7
|
const env_1 = { stack: [], error: void 0, hasError: false };
|
|
8
8
|
try {
|
|
9
|
-
const agent = __addDisposableResource(env_1, await
|
|
9
|
+
const agent = __addDisposableResource(env_1, await Agent.create({ randomSeed }), true);
|
|
10
10
|
return await unsafeEvalAsString(agent, () => Math.random());
|
|
11
11
|
}
|
|
12
12
|
catch (e_1) {
|
|
@@ -34,4 +34,4 @@ await test("different seeds", async () => {
|
|
|
34
34
|
const result2 = await makeAgentRandom(456);
|
|
35
35
|
assert.notEqual(result1, result2);
|
|
36
36
|
});
|
|
37
|
-
//# sourceMappingURL=
|
|
37
|
+
//# sourceMappingURL=10.random.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"10.random.js","sourceRoot":"","sources":["../../../test/00.agent/10.random.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAE7E,MAAM,eAAe,GAAG,KAAK,EAAE,UAAmB,EAAE,EAAE;;;QACrD,MAAY,KAAK,kCAAG,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC,OAAA,CAAC;QACvD,OAAO,MAAM,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;;;;;;;;;;;CAC5D,CAAC;AAEF,MAAM,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;IAC/B,MAAM,OAAO,GAAG,MAAM,eAAe,EAAE,CAAC;IACxC,MAAM,OAAO,GAAG,MAAM,eAAe,EAAE,CAAC;IACxC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC;AAEH,MAAM,IAAI,CAAC,eAAe,EAAE,KAAK,IAAI,EAAE;IACtC,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC;AAEH,MAAM,IAAI,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;IACxC,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"00.primitives.d.ts","sourceRoot":"","sources":["../../../test/10.transfer/00.primitives.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { __addDisposableResource, __disposeResources } from "tslib";
|
|
2
|
+
import * as assert from "node:assert/strict";
|
|
3
|
+
import { test } from "node:test";
|
|
4
|
+
import { Agent, Realm } from "@isolated-vm/experimental";
|
|
5
|
+
import { unsafeEvalAsStringInRealm } from "@isolated-vm/experimental/test/fixtures";
|
|
6
|
+
async function check(agent, realm, fn) {
|
|
7
|
+
const result = await unsafeEvalAsStringInRealm(agent, realm, fn);
|
|
8
|
+
assert.deepStrictEqual(result, fn());
|
|
9
|
+
}
|
|
10
|
+
await test("primitives", async () => {
|
|
11
|
+
const env_1 = { stack: [], error: void 0, hasError: false };
|
|
12
|
+
try {
|
|
13
|
+
const agent = __addDisposableResource(env_1, await Agent.create(), true);
|
|
14
|
+
const realm = await agent.createRealm();
|
|
15
|
+
// null, undefined, bool
|
|
16
|
+
await check(agent, realm, () => null);
|
|
17
|
+
await check(agent, realm, () => undefined);
|
|
18
|
+
await check(agent, realm, () => true);
|
|
19
|
+
await check(agent, realm, () => false);
|
|
20
|
+
// boolean
|
|
21
|
+
await check(agent, realm, () => true);
|
|
22
|
+
await check(agent, realm, () => false);
|
|
23
|
+
// string
|
|
24
|
+
await check(agent, realm, () => "hello world");
|
|
25
|
+
await check(agent, realm, () => "\u{10ffff}");
|
|
26
|
+
// number
|
|
27
|
+
await check(agent, realm, () => 0);
|
|
28
|
+
await check(agent, realm, () => Number.MAX_SAFE_INTEGER);
|
|
29
|
+
await check(agent, realm, () => Number.MAX_SAFE_INTEGER + 1);
|
|
30
|
+
await check(agent, realm, () => Number.MIN_SAFE_INTEGER);
|
|
31
|
+
await check(agent, realm, () => Number.MIN_SAFE_INTEGER - 1);
|
|
32
|
+
await check(agent, realm, () => Math.PI);
|
|
33
|
+
// bigint
|
|
34
|
+
await check(agent, realm, () => 0n);
|
|
35
|
+
await check(agent, realm, () => 9223372036854775807n); // int64 max
|
|
36
|
+
await check(agent, realm, () => 9223372036854775808n); // int64 max + 1
|
|
37
|
+
await check(agent, realm, () => -9223372036854775808n); // int64 min
|
|
38
|
+
await check(agent, realm, () => -9223372036854775809n); // int64 min - 1
|
|
39
|
+
await check(agent, realm, () => 18446744073709551615n); // uint64 max
|
|
40
|
+
await check(agent, realm, () => 18446744073709551616n); // uint64 max + 1
|
|
41
|
+
await check(agent, realm, () => 502360950888298027355518043327124471675959709617316205938938264006428765255489n); // 256 bit number
|
|
42
|
+
await check(agent, realm, () => -502360950888298027355518043327124471675959709617316205938938264006428765255490n); // 256 bit negative
|
|
43
|
+
}
|
|
44
|
+
catch (e_1) {
|
|
45
|
+
env_1.error = e_1;
|
|
46
|
+
env_1.hasError = true;
|
|
47
|
+
}
|
|
48
|
+
finally {
|
|
49
|
+
const result_1 = __disposeResources(env_1);
|
|
50
|
+
if (result_1)
|
|
51
|
+
await result_1;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
//# sourceMappingURL=00.primitives.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"00.primitives.js","sourceRoot":"","sources":["../../../test/10.transfer/00.primitives.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"10.array_buffer.d.ts","sourceRoot":"","sources":["../../../test/10.transfer/10.array_buffer.ts"],"names":[],"mappings":""}
|
|
@@ -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
|
|
5
|
-
import { injectAssert, unsafeEvalAsString, unsafeEvalAsStringInRealm } from "
|
|
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
|
|
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
|
|
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
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
const
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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=
|
|
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":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"50.interceptors.d.ts","sourceRoot":"","sources":["../../../test/10.transfer/50.interceptors.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { __addDisposableResource, __disposeResources } from "tslib";
|
|
2
|
+
import * as assert from "node:assert/strict";
|
|
3
|
+
import { describe, test } from "node:test";
|
|
4
|
+
import { Agent } from "@isolated-vm/experimental";
|
|
5
|
+
import { unsafeEvalAsStringInRealm } from "@isolated-vm/experimental/test/fixtures";
|
|
6
|
+
const supportsExpectedFailure =
|
|
7
|
+
// @ts-expect-error
|
|
8
|
+
process.isBun === undefined && process.versions.deno === undefined;
|
|
9
|
+
if (supportsExpectedFailure) {
|
|
10
|
+
// None of these work!
|
|
11
|
+
await test("named proxy", { expectFailure: "interceptor invoked" }, async () => {
|
|
12
|
+
const env_1 = { stack: [], error: void 0, hasError: false };
|
|
13
|
+
try {
|
|
14
|
+
const agent = __addDisposableResource(env_1, await Agent.create(), true);
|
|
15
|
+
const realm = await agent.createRealm();
|
|
16
|
+
const result = await unsafeEvalAsStringInRealm(agent, realm, () => {
|
|
17
|
+
const proxy = new Proxy({ name: "value" }, {
|
|
18
|
+
get() { throw new Error("interceptor invoked"); },
|
|
19
|
+
});
|
|
20
|
+
return proxy;
|
|
21
|
+
});
|
|
22
|
+
assert.deepStrictEqual(result, { name: undefined });
|
|
23
|
+
}
|
|
24
|
+
catch (e_1) {
|
|
25
|
+
env_1.error = e_1;
|
|
26
|
+
env_1.hasError = true;
|
|
27
|
+
}
|
|
28
|
+
finally {
|
|
29
|
+
const result_1 = __disposeResources(env_1);
|
|
30
|
+
if (result_1)
|
|
31
|
+
await result_1;
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
await test("indexed proxy", { expectFailure: "interceptor invoked" }, async () => {
|
|
35
|
+
const env_2 = { stack: [], error: void 0, hasError: false };
|
|
36
|
+
try {
|
|
37
|
+
const agent = __addDisposableResource(env_2, await Agent.create(), true);
|
|
38
|
+
const realm = await agent.createRealm();
|
|
39
|
+
const result = await unsafeEvalAsStringInRealm(agent, realm, () => {
|
|
40
|
+
const proxy = new Proxy([0, 1], {
|
|
41
|
+
get() { throw new Error("interceptor invoked"); },
|
|
42
|
+
});
|
|
43
|
+
return proxy;
|
|
44
|
+
});
|
|
45
|
+
assert.deepStrictEqual(result, [undefined, undefined]);
|
|
46
|
+
}
|
|
47
|
+
catch (e_2) {
|
|
48
|
+
env_2.error = e_2;
|
|
49
|
+
env_2.hasError = true;
|
|
50
|
+
}
|
|
51
|
+
finally {
|
|
52
|
+
const result_2 = __disposeResources(env_2);
|
|
53
|
+
if (result_2)
|
|
54
|
+
await result_2;
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
await describe("named getter", { expectFailure: "interceptor invoked" }, 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 = await agent.createRealm();
|
|
62
|
+
const result = await unsafeEvalAsStringInRealm(agent, realm, () => {
|
|
63
|
+
const object = { name: "value" };
|
|
64
|
+
Object.defineProperty(object, "name", {
|
|
65
|
+
enumerable: true,
|
|
66
|
+
get() { throw new Error("interceptor invoked"); },
|
|
67
|
+
});
|
|
68
|
+
return object;
|
|
69
|
+
});
|
|
70
|
+
assert.deepStrictEqual(result, { name: undefined });
|
|
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 describe("indexed getter", { expectFailure: "interceptor invoked" }, 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 = await agent.createRealm();
|
|
87
|
+
const result = await unsafeEvalAsStringInRealm(agent, realm, () => {
|
|
88
|
+
const array = [0, 1];
|
|
89
|
+
Object.defineProperty(array, 0, {
|
|
90
|
+
enumerable: true,
|
|
91
|
+
get() { throw new Error("interceptor invoked"); },
|
|
92
|
+
});
|
|
93
|
+
return array;
|
|
94
|
+
});
|
|
95
|
+
assert.deepStrictEqual(result, [undefined, 1]);
|
|
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
|
+
}
|
|
108
|
+
//# sourceMappingURL=50.interceptors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"50.interceptors.js","sourceRoot":"","sources":["../../../test/10.transfer/50.interceptors.ts"],"names":[],"mappings":"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"}
|
|
@@ -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"}
|