@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,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 @@
|
|
|
1
|
+
{"version":3,"file":"00.script.d.ts","sourceRoot":"","sources":["../../../test/20.intrinsics/00.script.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 { expectComplete, expectThrow, unsafeEvalAsStringInRealm, unsafeIIFEAsString } from "
|
|
4
|
+
import { Agent } from "@isolated-vm/experimental";
|
|
5
|
+
import { expectComplete, expectThrow, unsafeEvalAsStringInRealm, unsafeIIFEAsString } from "@isolated-vm/experimental/test/fixtures";
|
|
6
6
|
await test("script source origin", async () => {
|
|
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(), true);
|
|
10
10
|
const script = expectComplete(await agent.compileScript(unsafeIIFEAsString(() => {
|
|
11
11
|
try {
|
|
12
12
|
throw new Error();
|
|
@@ -39,7 +39,7 @@ await test("script source origin", async () => {
|
|
|
39
39
|
await test("script which throws", 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(), true);
|
|
43
43
|
const realm = await agent.createRealm();
|
|
44
44
|
const script = expectComplete(await agent.compileScript("throw new Error('wow');", { origin: { name: "test:script" } }));
|
|
45
45
|
const error = expectThrow(await script.run(realm));
|
|
@@ -59,7 +59,7 @@ await test("script which throws", async () => {
|
|
|
59
59
|
await test("script with syntax error", async () => {
|
|
60
60
|
const env_3 = { stack: [], error: void 0, hasError: false };
|
|
61
61
|
try {
|
|
62
|
-
const agent = __addDisposableResource(env_3, await
|
|
62
|
+
const agent = __addDisposableResource(env_3, await Agent.create(), true);
|
|
63
63
|
const error = expectThrow(await agent.compileScript("}"));
|
|
64
64
|
// @ts-expect-error
|
|
65
65
|
const message = error.message;
|
|
@@ -79,7 +79,7 @@ await test("script with syntax error", async () => {
|
|
|
79
79
|
await test("script which returns a circular object", async () => {
|
|
80
80
|
const env_4 = { stack: [], error: void 0, hasError: false };
|
|
81
81
|
try {
|
|
82
|
-
const agent = __addDisposableResource(env_4, await
|
|
82
|
+
const agent = __addDisposableResource(env_4, await Agent.create(), true);
|
|
83
83
|
const realm = await agent.createRealm();
|
|
84
84
|
const result = await unsafeEvalAsStringInRealm(agent, realm, () => {
|
|
85
85
|
const date = new Date();
|
|
@@ -104,4 +104,4 @@ await test("script which returns a circular object", async () => {
|
|
|
104
104
|
await result_4;
|
|
105
105
|
}
|
|
106
106
|
});
|
|
107
|
-
//# sourceMappingURL=
|
|
107
|
+
//# 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
|
|
5
|
-
import { unsafeEvalAsStringInRealm } from "
|
|
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
|
|
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,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
|
|
5
|
-
import { expectComplete, unsafeEvalAsStringInRealm } from "
|
|
4
|
+
import { Agent, expect } from "@isolated-vm/experimental";
|
|
5
|
+
import { expectComplete, unsafeEvalAsStringInRealm } from "@isolated-vm/experimental/test/fixtures";
|
|
6
6
|
await test("function reference invoke", async () => {
|
|
7
7
|
const env_1 = { stack: [], error: void 0, hasError: false };
|
|
8
8
|
try {
|
|
9
|
-
const agent = __addDisposableResource(env_1, await
|
|
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.fn = () => "wow";
|
|
@@ -30,8 +30,8 @@ await test("function reference invoke", async () => {
|
|
|
30
30
|
await test("invoke function cross-param reference", async () => {
|
|
31
31
|
const env_2 = { stack: [], error: void 0, hasError: false };
|
|
32
32
|
try {
|
|
33
|
-
const agent = __addDisposableResource(env_2, await
|
|
34
|
-
const realm = await agent.createRealm();
|
|
33
|
+
const agent = __addDisposableResource(env_2, await Agent.create(), true);
|
|
34
|
+
const realm = expect(await agent.createRealm());
|
|
35
35
|
await unsafeEvalAsStringInRealm(agent, realm, () => {
|
|
36
36
|
// @ts-expect-error
|
|
37
37
|
globalThis.fn = (...values) => values;
|
|
@@ -56,8 +56,8 @@ await test("invoke function cross-param reference", async () => {
|
|
|
56
56
|
await test("invoke function reference with circular object", async () => {
|
|
57
57
|
const env_3 = { stack: [], error: void 0, hasError: false };
|
|
58
58
|
try {
|
|
59
|
-
const agent = __addDisposableResource(env_3, await
|
|
60
|
-
const realm = await agent.createRealm();
|
|
59
|
+
const agent = __addDisposableResource(env_3, await Agent.create(), true);
|
|
60
|
+
const realm = expect(await agent.createRealm());
|
|
61
61
|
await unsafeEvalAsStringInRealm(agent, realm, () => {
|
|
62
62
|
// @ts-expect-error
|
|
63
63
|
globalThis.fn = (value) => value;
|
|
@@ -90,8 +90,8 @@ await test("invoke function reference with circular object", async () => {
|
|
|
90
90
|
await test("get & set should not invoke proxies", async () => {
|
|
91
91
|
const env_4 = { stack: [], error: void 0, hasError: false };
|
|
92
92
|
try {
|
|
93
|
-
const agent = __addDisposableResource(env_4, await
|
|
94
|
-
const realm = await agent.createRealm();
|
|
93
|
+
const agent = __addDisposableResource(env_4, await Agent.create(), true);
|
|
94
|
+
const realm = expect(await agent.createRealm());
|
|
95
95
|
await unsafeEvalAsStringInRealm(agent, realm, () => {
|
|
96
96
|
// @ts-expect-error
|
|
97
97
|
globalThis.prox = new Proxy({}, {
|
|
@@ -102,17 +102,17 @@ await test("get & set should not invoke proxies", async () => {
|
|
|
102
102
|
});
|
|
103
103
|
});
|
|
104
104
|
const global = await realm.acquireGlobalObject();
|
|
105
|
-
const prox = await global.get("prox");
|
|
105
|
+
const prox = expect(await global.get("prox"));
|
|
106
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);
|
|
107
|
+
assert.equal(await expect(await global.get("failed")).copy(), undefined);
|
|
108
|
+
expect(await prox.set("name", undefined));
|
|
109
|
+
assert.equal(await expect(await global.get("failed")).copy(), undefined);
|
|
110
110
|
// sanity check
|
|
111
111
|
await unsafeEvalAsStringInRealm(agent, realm, () => {
|
|
112
112
|
// @ts-expect-error
|
|
113
113
|
globalThis.failed = true;
|
|
114
114
|
});
|
|
115
|
-
assert.equal(await (await global.get("failed")).copy(), true);
|
|
115
|
+
assert.equal(await expect(await global.get("failed")).copy(), true);
|
|
116
116
|
}
|
|
117
117
|
catch (e_4) {
|
|
118
118
|
env_4.error = e_4;
|
|
@@ -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 @@
|
|
|
1
|
+
{"version":3,"file":"20.module.d.ts","sourceRoot":"","sources":["../../../test/20.intrinsics/20.module.ts"],"names":[],"mappings":""}
|
|
@@ -1,13 +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
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
4
|
+
import { Agent, expect } from "@isolated-vm/experimental";
|
|
5
|
+
import { expectComplete, expectThrow } from "@isolated-vm/experimental/test/fixtures";
|
|
6
|
+
import { makeNullLinker } from "@isolated-vm/experimental/utility/linker";
|
|
7
7
|
await test("module linker", async () => {
|
|
8
8
|
const env_1 = { stack: [], error: void 0, hasError: false };
|
|
9
9
|
try {
|
|
10
|
-
const agent = __addDisposableResource(env_1, await
|
|
10
|
+
const agent = __addDisposableResource(env_1, await Agent.create(), true);
|
|
11
11
|
const realm = await agent.createRealm();
|
|
12
12
|
const left = expectComplete(await agent.compileModule('import { right } from "right"; globalThis.right = right;'));
|
|
13
13
|
const right = expectComplete(await agent.compileModule('export function right() { return "hello"; }'));
|
|
@@ -33,7 +33,7 @@ await test("module linker", async () => {
|
|
|
33
33
|
await test("nested compilation in module linker", async () => {
|
|
34
34
|
const env_2 = { stack: [], error: void 0, hasError: false };
|
|
35
35
|
try {
|
|
36
|
-
const agent = __addDisposableResource(env_2, await
|
|
36
|
+
const agent = __addDisposableResource(env_2, await Agent.create(), true);
|
|
37
37
|
const realm = await agent.createRealm();
|
|
38
38
|
const left = expectComplete(await agent.compileModule('import "right";'));
|
|
39
39
|
await left.link(realm, async () => expectComplete(await agent.compileModule("export {};")));
|
|
@@ -51,17 +51,17 @@ await test("nested compilation in module linker", async () => {
|
|
|
51
51
|
await test("synthetic module capability", async () => {
|
|
52
52
|
const env_3 = { stack: [], error: void 0, hasError: false };
|
|
53
53
|
try {
|
|
54
|
-
const agent = __addDisposableResource(env_3, await
|
|
54
|
+
const agent = __addDisposableResource(env_3, await Agent.create(), true);
|
|
55
55
|
const capabilityName = "isolated-vm:///capability";
|
|
56
56
|
let didInvoke = false;
|
|
57
|
-
const realm = await agent.createRealm();
|
|
58
|
-
const capability = await realm.createCapability(() => ({
|
|
57
|
+
const realm = expect(await agent.createRealm());
|
|
58
|
+
const capability = expect(await realm.createCapability(() => ({
|
|
59
59
|
default: (value1, value2) => {
|
|
60
60
|
didInvoke = true;
|
|
61
61
|
assert.equal(value1, "hello");
|
|
62
62
|
assert.equal(value2, "world");
|
|
63
63
|
},
|
|
64
|
-
}), { origin: capabilityName });
|
|
64
|
+
}), { origin: capabilityName }));
|
|
65
65
|
const left = expectComplete(await agent.compileModule(`
|
|
66
66
|
import capability from ${JSON.stringify(capabilityName)};
|
|
67
67
|
capability("hello", "world");
|
|
@@ -86,17 +86,17 @@ await test("synthetic module capability", async () => {
|
|
|
86
86
|
await test("synthetic module with circular reference", async () => {
|
|
87
87
|
const env_4 = { stack: [], error: void 0, hasError: false };
|
|
88
88
|
try {
|
|
89
|
-
const agent = __addDisposableResource(env_4, await
|
|
89
|
+
const agent = __addDisposableResource(env_4, await Agent.create(), true);
|
|
90
90
|
const capabilityName = "isolated-vm:///capability";
|
|
91
|
-
const realm = await agent.createRealm();
|
|
92
|
-
const capability = await realm.createCapability(() => ({
|
|
91
|
+
const realm = expect(await agent.createRealm());
|
|
92
|
+
const capability = expect(await realm.createCapability(() => ({
|
|
93
93
|
default: (value1) => {
|
|
94
94
|
// @ts-expect-error
|
|
95
95
|
assert.strictEqual(value1.date1, value1.date2);
|
|
96
96
|
// @ts-expect-error
|
|
97
97
|
assert.strictEqual(value1.object, value1);
|
|
98
98
|
},
|
|
99
|
-
}), { origin: capabilityName });
|
|
99
|
+
}), { origin: capabilityName }));
|
|
100
100
|
const left = expectComplete(await agent.compileModule(`
|
|
101
101
|
import capability from ${JSON.stringify(capabilityName)};
|
|
102
102
|
const date = new Date();
|
|
@@ -127,7 +127,7 @@ await test("synthetic module with circular reference", async () => {
|
|
|
127
127
|
// TODO: This terminates the process. It should probably raise an async error, because there is no
|
|
128
128
|
// promise.
|
|
129
129
|
// await test("throw from synthetic module", async () => {
|
|
130
|
-
// await using agent = await
|
|
130
|
+
// await using agent = await Agent.create();
|
|
131
131
|
// const capabilityName = "isolated-vm:///capability";
|
|
132
132
|
// const realm = await agent.createRealm();
|
|
133
133
|
// const capability = await realm.createCapability(
|
|
@@ -150,7 +150,7 @@ await test("synthetic module with circular reference", async () => {
|
|
|
150
150
|
await test("throw from linker", async () => {
|
|
151
151
|
const env_5 = { stack: [], error: void 0, hasError: false };
|
|
152
152
|
try {
|
|
153
|
-
const agent = __addDisposableResource(env_5, await
|
|
153
|
+
const agent = __addDisposableResource(env_5, await Agent.create(), true);
|
|
154
154
|
const realm = await agent.createRealm();
|
|
155
155
|
const left = expectComplete(await agent.compileModule('import "right";'));
|
|
156
156
|
await assert.rejects(left.link(realm, () => {
|
|
@@ -170,7 +170,7 @@ await test("throw from linker", async () => {
|
|
|
170
170
|
await test("throw from evaluation", async () => {
|
|
171
171
|
const env_6 = { stack: [], error: void 0, hasError: false };
|
|
172
172
|
try {
|
|
173
|
-
const agent = __addDisposableResource(env_6, await
|
|
173
|
+
const agent = __addDisposableResource(env_6, await Agent.create(), true);
|
|
174
174
|
const realm = await agent.createRealm();
|
|
175
175
|
const module = expectComplete(await agent.compileModule('throw new Error("wow");', { origin: { name: "test:module" } }));
|
|
176
176
|
await module.link(realm, makeNullLinker());
|
|
@@ -191,7 +191,7 @@ await test("throw from evaluation", async () => {
|
|
|
191
191
|
await test("missing imports", async () => {
|
|
192
192
|
const env_7 = { stack: [], error: void 0, hasError: false };
|
|
193
193
|
try {
|
|
194
|
-
const agent = __addDisposableResource(env_7, await
|
|
194
|
+
const agent = __addDisposableResource(env_7, await Agent.create(), true);
|
|
195
195
|
const realm = await agent.createRealm();
|
|
196
196
|
const left = expectComplete(await agent.compileModule('import { nothing } from "right";'));
|
|
197
197
|
await assert.rejects(left.link(realm, async () => expectComplete(await agent.compileModule("export {};"))));
|
|
@@ -206,4 +206,4 @@ await test("missing imports", async () => {
|
|
|
206
206
|
await result_7;
|
|
207
207
|
}
|
|
208
208
|
});
|
|
209
|
-
//# sourceMappingURL=
|
|
209
|
+
//# sourceMappingURL=20.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"20.module.js","sourceRoot":"","sources":["../../../test/20.intrinsics/20.module.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"50.timers.d.ts","sourceRoot":"","sources":["../../../test/50.features/50.timers.ts"],"names":[],"mappings":""}
|
|
@@ -1,27 +1,27 @@
|
|
|
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
|
|
4
|
+
import { Agent, expect } from "@isolated-vm/experimental";
|
|
5
|
+
import { expectComplete } from "@isolated-vm/experimental/test/fixtures";
|
|
5
6
|
import { makeCompositeLinker, makeDirectResolver, makeFileSystemCompilationLoader, makeLinker, makeLocalResolver, makeStaticLoader } from "@isolated-vm/experimental/utility/linker";
|
|
6
|
-
import { expectComplete } from "./fixtures.js";
|
|
7
7
|
await test("setTimeout capability", async () => {
|
|
8
8
|
const env_1 = { stack: [], error: void 0, hasError: false };
|
|
9
9
|
try {
|
|
10
|
-
const agent = __addDisposableResource(env_1, await
|
|
11
|
-
const realm = await agent.createRealm();
|
|
10
|
+
const agent = __addDisposableResource(env_1, await Agent.create(), true);
|
|
11
|
+
const realm = expect(await agent.createRealm());
|
|
12
12
|
const runTimers = expectComplete(await agent.compileScript("runTimers()"));
|
|
13
13
|
const resolvers = Promise.withResolvers();
|
|
14
14
|
const capabilities = makeStaticLoader({
|
|
15
|
-
"isolated-vm:capability/timers": await realm.createCapability(() => ({
|
|
15
|
+
"isolated-vm:capability/timers": expect(await realm.createCapability(() => ({
|
|
16
16
|
default: ( /*timeout*/) => {
|
|
17
17
|
void async function () {
|
|
18
18
|
await runTimers.run(realm);
|
|
19
19
|
}();
|
|
20
20
|
},
|
|
21
|
-
}), { origin: "isolated-vm:capability/timers" }),
|
|
22
|
-
"notify-test": await realm.createCapability(() => ({
|
|
21
|
+
}), { origin: "isolated-vm:capability/timers" })),
|
|
22
|
+
"notify-test": expect(await realm.createCapability(() => ({
|
|
23
23
|
default: (message) => { resolvers.resolve(message); },
|
|
24
|
-
}), { origin: "notify-test" }),
|
|
24
|
+
}), { origin: "notify-test" })),
|
|
25
25
|
});
|
|
26
26
|
const runtime = makeFileSystemCompilationLoader(agent);
|
|
27
27
|
const linker = makeCompositeLinker(makeLinker(makeDirectResolver(), capabilities), makeLinker(makeLocalResolver(import.meta), runtime));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"50.timers.js","sourceRoot":"","sources":["../../../test/50.features/50.timers.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,cAAc,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,+BAA+B,EAAE,UAAU,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAErL,MAAM,IAAI,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;;;QAC9C,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,SAAS,GAAG,cAAc,CAAC,MAAM,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;QAC3E,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QAC1C,MAAM,YAAY,GAAG,gBAAgB,CAAC;YACrC,+BAA+B,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,gBAAgB,CACnE,GAAG,EAAE,CAAC,CAAC;gBACN,OAAO,EAAE,EAAC,WAAW,EAAE,EAAE;oBACxB,KAAK,KAAK;wBACT,MAAM,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBAC5B,CAAC,EAAE,CAAC;gBACL,CAAC;aACD,CAAC,EACF,EAAE,MAAM,EAAE,+BAA+B,EAAE,CAAC,CAAC;YAC9C,aAAa,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,gBAAgB,CACjD,GAAG,EAAE,CAAC,CAAC;gBACN,OAAO,EAAE,CAAC,OAAgB,EAAE,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;aAC9D,CAAC,EACF,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;SAC5B,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,+BAA+B,CAAC,KAAK,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,mBAAmB,CACjC,UAAU,CAAC,kBAAkB,EAAE,EAAE,YAAY,CAAC,EAC9C,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,KAAK,CAAC,aAAa,CAAC;;;;EAIvD,CAAC,CAAC,CAAC;QACJ,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACjC,MAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC7B,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACnC,MAAM,CAAC,KAAK,CAAC,MAAM,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;;;;;;;;;;;CAC/C,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"90.i18n.d.ts","sourceRoot":"","sources":["../../../test/50.features/90.i18n.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
|
await test("localCompare", async () => {
|
|
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(), true);
|
|
10
10
|
const result = await unsafeEvalAsString(agent, () => "a".localeCompare("b"));
|
|
11
11
|
assert.equal(result, -1);
|
|
12
12
|
}
|
|
@@ -23,7 +23,7 @@ await test("localCompare", async () => {
|
|
|
23
23
|
await test("i18n locales", async () => {
|
|
24
24
|
const env_2 = { stack: [], error: void 0, hasError: false };
|
|
25
25
|
try {
|
|
26
|
-
const agent = __addDisposableResource(env_2, await
|
|
26
|
+
const agent = __addDisposableResource(env_2, await Agent.create(), true);
|
|
27
27
|
const supported = await unsafeEvalAsString(agent, () => Intl.NumberFormat.supportedLocalesOf(["ar-EG", "fa-IR", "zh-Hans", "hi-IN", "th-TH", "km-KH"]));
|
|
28
28
|
// no "km-KH"
|
|
29
29
|
assert.deepEqual(supported, ["ar-EG", "fa-IR", "zh-Hans", "hi-IN", "th-TH"]);
|
|
@@ -41,7 +41,7 @@ await test("i18n locales", async () => {
|
|
|
41
41
|
await test("i18n format", async () => {
|
|
42
42
|
const env_3 = { stack: [], error: void 0, hasError: false };
|
|
43
43
|
try {
|
|
44
|
-
const agent = __addDisposableResource(env_3, await
|
|
44
|
+
const agent = __addDisposableResource(env_3, await Agent.create(), true);
|
|
45
45
|
const german = await unsafeEvalAsString(agent, () => new Intl.NumberFormat("de-DE").format(1234567.89));
|
|
46
46
|
assert.equal(german, "1.234.567,89");
|
|
47
47
|
}
|
|
@@ -55,4 +55,4 @@ await test("i18n format", async () => {
|
|
|
55
55
|
await result_3;
|
|
56
56
|
}
|
|
57
57
|
});
|
|
58
|
-
//# sourceMappingURL=
|
|
58
|
+
//# sourceMappingURL=90.i18n.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"90.i18n.js","sourceRoot":"","sources":["../../../test/50.features/90.i18n.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,IAAI,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;;;QACrC,MAAY,KAAK,kCAAG,MAAM,KAAK,CAAC,MAAM,EAAE,OAAA,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7E,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;;;;;;;;;;;CACzB,CAAC,CAAC;AAEH,MAAM,IAAI,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;;;QACrC,MAAY,KAAK,kCAAG,MAAM,KAAK,CAAC,MAAM,EAAE,OAAA,CAAC;QACzC,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE,CACtD,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAE,CAAC,CAAC,CAAC;QACnG,aAAa;QACb,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,CAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAE,CAAC,CAAC;;;;;;;;;;;CAC/E,CAAC,CAAC;AAEH,MAAM,IAAI,CAAC,aAAa,EAAE,KAAK,IAAI,EAAE;;;QACpC,MAAY,KAAK,kCAAG,MAAM,KAAK,CAAC,MAAM,EAAE,OAAA,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QACxG,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;;;;;;;;;;;CACrC,CAAC,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import "@isolated-vm/experimental/test/fixtures";
|
|
2
2
|
//# sourceMappingURL=00.dispose.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"00.dispose.d.ts","sourceRoot":"","sources":["../../../test/90.isolation/00.dispose.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"00.dispose.d.ts","sourceRoot":"","sources":["../../../test/90.isolation/00.dispose.ts"],"names":[],"mappings":"AAGA,OAAO,yCAAyC,CAAC"}
|
|
@@ -1,15 +1,15 @@
|
|
|
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
|
|
4
|
+
import { Agent, expectComplete } from "@isolated-vm/experimental";
|
|
5
|
+
import "@isolated-vm/experimental/test/fixtures";
|
|
6
6
|
await test("dispose while running", async () => {
|
|
7
7
|
const result = async function () {
|
|
8
8
|
const env_1 = { stack: [], error: void 0, hasError: false };
|
|
9
9
|
try {
|
|
10
|
-
const agent = __addDisposableResource(env_1, await
|
|
10
|
+
const agent = __addDisposableResource(env_1, await Agent.create(), true);
|
|
11
11
|
const realm = await agent.createRealm();
|
|
12
|
-
const script =
|
|
12
|
+
const script = expectComplete(await agent.compileScript("for(;;);"));
|
|
13
13
|
// eslint-disable-next-line @typescript-eslint/return-await
|
|
14
14
|
return script.run(realm);
|
|
15
15
|
}
|
|
@@ -23,6 +23,24 @@ await test("dispose while running", async () => {
|
|
|
23
23
|
await result_1;
|
|
24
24
|
}
|
|
25
25
|
}();
|
|
26
|
-
assert.strictEqual(await result,
|
|
26
|
+
assert.strictEqual(await result, null);
|
|
27
|
+
});
|
|
28
|
+
await test("busy dispose", async () => {
|
|
29
|
+
const env_2 = { stack: [], error: void 0, hasError: false };
|
|
30
|
+
try {
|
|
31
|
+
const agent = __addDisposableResource(env_2, await Agent.create(), true);
|
|
32
|
+
const [dispose, realm] = await Promise.all([agent.disposeAsync(), agent.createRealm()]);
|
|
33
|
+
assert.strictEqual(dispose, undefined);
|
|
34
|
+
assert.strictEqual(realm, null);
|
|
35
|
+
}
|
|
36
|
+
catch (e_2) {
|
|
37
|
+
env_2.error = e_2;
|
|
38
|
+
env_2.hasError = true;
|
|
39
|
+
}
|
|
40
|
+
finally {
|
|
41
|
+
const result_2 = __disposeResources(env_2);
|
|
42
|
+
if (result_2)
|
|
43
|
+
await result_2;
|
|
44
|
+
}
|
|
27
45
|
});
|
|
28
46
|
//# sourceMappingURL=00.dispose.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"00.dispose.js","sourceRoot":"","sources":["../../../test/90.isolation/00.dispose.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"00.dispose.js","sourceRoot":"","sources":["../../../test/90.isolation/00.dispose.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,MAAM,IAAI,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;IAC9C,MAAM,MAAM,GAAG,KAAK;;;YACnB,MAAY,KAAK,kCAAG,MAAM,KAAK,CAAC,MAAM,EAAE,OAAA,CAAC;YACzC,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC;YACrE,2DAA2D;YAC3D,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;;;;;;;;;;;KACzB,EAAE,CAAC;IACJ,MAAM,CAAC,WAAW,CAAC,MAAM,MAAM,EAAE,IAAI,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC;AAEH,MAAM,IAAI,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;;;QACrC,MAAY,KAAK,kCAAG,MAAM,KAAK,CAAC,MAAM,EAAE,OAAA,CAAC;QACzC,MAAM,CAAE,OAAO,EAAE,KAAK,CAAE,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAE,KAAK,CAAC,YAAY,EAAE,EAAE,KAAK,CAAC,WAAW,EAAE,CAAE,CAAC,CAAC;QAC5F,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACvC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;;;;;;;;;;;CAChC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"10.memory.d.ts","sourceRoot":"","sources":["../../../test/90.isolation/10.memory.ts"],"names":[],"mappings":"AAGA,OAAO,yCAAyC,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { __addDisposableResource, __disposeResources } from "tslib";
|
|
2
|
+
import assert from "node:assert";
|
|
3
|
+
import { test } from "node:test";
|
|
4
|
+
import { Agent, expectComplete } from "@isolated-vm/experimental";
|
|
5
|
+
import "@isolated-vm/experimental/test/fixtures";
|
|
6
|
+
await test("memory limit", async () => {
|
|
7
|
+
const env_1 = { stack: [], error: void 0, hasError: false };
|
|
8
|
+
try {
|
|
9
|
+
const agent = __addDisposableResource(env_1, await Agent.create({ memoryLimitBytes: 128 << 20 }), true);
|
|
10
|
+
const realm = await agent.createRealm();
|
|
11
|
+
const sourceText = `const x = [];
|
|
12
|
+
for (;;) {
|
|
13
|
+
let a = 'a';
|
|
14
|
+
for(; a.length < 2**28;) a += a;
|
|
15
|
+
x.push(a);
|
|
16
|
+
}`;
|
|
17
|
+
const script = expectComplete(await agent.compileScript(sourceText));
|
|
18
|
+
const result = await script.run(realm);
|
|
19
|
+
assert.strictEqual(result, null);
|
|
20
|
+
}
|
|
21
|
+
catch (e_1) {
|
|
22
|
+
env_1.error = e_1;
|
|
23
|
+
env_1.hasError = true;
|
|
24
|
+
}
|
|
25
|
+
finally {
|
|
26
|
+
const result_1 = __disposeResources(env_1);
|
|
27
|
+
if (result_1)
|
|
28
|
+
await result_1;
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
//# sourceMappingURL=10.memory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"10.memory.js","sourceRoot":"","sources":["../../../test/90.isolation/10.memory.ts"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,yCAAyC,CAAC;AAEjD,MAAM,IAAI,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;;;QACrC,MAAY,KAAK,kCAAG,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,gBAAgB,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,OAAA,CAAC;QACxE,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,UAAU,GACjB;;;;;EAKE,CAAC;QACF,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;;;;;;;;;;;CACjC,CAAC,CAAC"}
|