@isolated-vm/experimental 0.0.10 → 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.
- package/addon/handle/local_of.cc +2 -3
- package/addon/support/free_function.cc +1 -1
- package/addon/support/initialize.cc +3 -3
- package/addon/transfer/accept.cc +21 -9
- package/addon/transfer/visit.cc +7 -7
- package/dist/frontend/realm.d.ts +1 -1
- package/dist/frontend/realm.d.ts.map +1 -1
- package/dist/test/20.intrinsics/00.script.js +25 -0
- package/dist/test/20.intrinsics/00.script.js.map +1 -1
- package/dist/test/20.intrinsics/10.reference.js +63 -17
- package/dist/test/20.intrinsics/10.reference.js.map +1 -1
- package/dist/test/20.intrinsics/20.module.js +55 -24
- package/dist/test/20.intrinsics/20.module.js.map +1 -1
- package/dist/test/90.isolation/10.memory.js +20 -0
- package/dist/test/90.isolation/10.memory.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utility/completion.d.ts +1 -1
- package/dist/utility/completion.d.ts.map +1 -1
- package/frontend/realm.ts +4 -1
- package/package.json +9 -9
- package/test/20.intrinsics/00.script.ts +15 -0
- package/test/20.intrinsics/10.reference.ts +42 -14
- package/test/20.intrinsics/20.module.ts +22 -0
- package/test/90.isolation/10.memory.ts +9 -0
- package/utility/completion.ts +1 -1
- package/dist/test/10.transfer/50.interceptors.d.ts +0 -2
- package/dist/test/10.transfer/50.interceptors.d.ts.map +0 -1
- package/dist/test/10.transfer/50.interceptors.js +0 -108
- package/dist/test/10.transfer/50.interceptors.js.map +0 -1
- package/test/10.transfer/50.interceptors.ts +0 -63
|
@@ -1,108 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"50.interceptors.js","sourceRoot":"","sources":["../../../test/10.transfer/50.interceptors.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import * as assert from "node:assert/strict";
|
|
2
|
-
import { describe, test } from "node:test";
|
|
3
|
-
import { Agent } from "@isolated-vm/experimental";
|
|
4
|
-
import { unsafeEvalAsStringInRealm } from "@isolated-vm/experimental/test/fixtures";
|
|
5
|
-
|
|
6
|
-
const supportsExpectedFailure =
|
|
7
|
-
// @ts-expect-error
|
|
8
|
-
process.isBun === undefined && process.versions.deno === undefined;
|
|
9
|
-
|
|
10
|
-
if (supportsExpectedFailure) {
|
|
11
|
-
// None of these work!
|
|
12
|
-
await test("named proxy", { expectFailure: "interceptor invoked" }, async () => {
|
|
13
|
-
await using agent = await Agent.create();
|
|
14
|
-
const realm = await agent.createRealm();
|
|
15
|
-
const result = await unsafeEvalAsStringInRealm(agent, realm, () => {
|
|
16
|
-
const proxy = new Proxy({ name: "value" }, {
|
|
17
|
-
get() { throw new Error("interceptor invoked"); },
|
|
18
|
-
});
|
|
19
|
-
return proxy;
|
|
20
|
-
});
|
|
21
|
-
assert.deepStrictEqual(result, { name: undefined });
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
await test("indexed proxy", { expectFailure: "interceptor invoked" }, async () => {
|
|
25
|
-
await using agent = await Agent.create();
|
|
26
|
-
const realm = await agent.createRealm();
|
|
27
|
-
const result = await unsafeEvalAsStringInRealm(agent, realm, () => {
|
|
28
|
-
const proxy = new Proxy([ 0, 1 ], {
|
|
29
|
-
get() { throw new Error("interceptor invoked"); },
|
|
30
|
-
});
|
|
31
|
-
return proxy;
|
|
32
|
-
});
|
|
33
|
-
assert.deepStrictEqual(result, [ undefined, undefined ]);
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
await describe("named getter", { expectFailure: "interceptor invoked" }, async () => {
|
|
37
|
-
await using agent = await Agent.create();
|
|
38
|
-
const realm = await agent.createRealm();
|
|
39
|
-
const result = await unsafeEvalAsStringInRealm(agent, realm, () => {
|
|
40
|
-
const object = { name: "value" };
|
|
41
|
-
Object.defineProperty(object, "name", {
|
|
42
|
-
enumerable: true,
|
|
43
|
-
get() { throw new Error("interceptor invoked"); },
|
|
44
|
-
});
|
|
45
|
-
return object;
|
|
46
|
-
});
|
|
47
|
-
assert.deepStrictEqual(result, { name: undefined });
|
|
48
|
-
});
|
|
49
|
-
|
|
50
|
-
await describe("indexed getter", { expectFailure: "interceptor invoked" }, async () => {
|
|
51
|
-
await using agent = await Agent.create();
|
|
52
|
-
const realm = await agent.createRealm();
|
|
53
|
-
const result = await unsafeEvalAsStringInRealm(agent, realm, () => {
|
|
54
|
-
const array = [ 0, 1 ];
|
|
55
|
-
Object.defineProperty(array, 0, {
|
|
56
|
-
enumerable: true,
|
|
57
|
-
get() { throw new Error("interceptor invoked"); },
|
|
58
|
-
});
|
|
59
|
-
return array;
|
|
60
|
-
});
|
|
61
|
-
assert.deepStrictEqual(result, [ undefined, 1 ]);
|
|
62
|
-
});
|
|
63
|
-
}
|