From a552a6ce63e81c6c19c6c6708c4df80182c46b24 Mon Sep 17 00:00:00 2001 From: Tianyi Cui <53024+tianyicui@users.noreply.github.com> Date: Thu, 23 Jul 2026 02:02:59 +0800 Subject: [PATCH] test(code-runtime): cover revoked constructor spoof --- .../code-runtime-worker/tests/worker-json.spec.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/code-runtime/code-runtime-worker/tests/worker-json.spec.ts b/packages/code-runtime/code-runtime-worker/tests/worker-json.spec.ts index d745c68978..e0c8310a6a 100644 --- a/packages/code-runtime/code-runtime-worker/tests/worker-json.spec.ts +++ b/packages/code-runtime/code-runtime-worker/tests/worker-json.spec.ts @@ -103,6 +103,13 @@ describe('snapshotCodeJsonValue', () => { Object.defineProperty(spoofedObjectPrototype, 'constructor', { value: SpoofedObject }) const spoofedObject = Object.create(spoofedObjectPrototype) as Record spoofedObject.value = 1 + const revokedPrototype = Object.create(null) as Record + const RevokedObject = function Object() {} + RevokedObject.prototype = revokedPrototype + const revokedConstructor = Proxy.revocable(RevokedObject, {}) + Object.defineProperty(revokedPrototype, 'constructor', { value: revokedConstructor.proxy }) + const revokedObject = Object.create(revokedPrototype) as Record + revokedConstructor.revoke() const spoofedArrayPrototype: unknown[] = [] Object.setPrototypeOf(spoofedArrayPrototype, Object.prototype) const SpoofedArray = function Array() {} @@ -124,6 +131,7 @@ describe('snapshotCodeJsonValue', () => { customPrototypeObject, forgedArray, spoofedObject, + revokedObject, spoofedArray, cyclic, [undefined],