diff --git a/packages/ses/src/intrinsics.js b/packages/ses/src/intrinsics.js index 6dd17b58ee..ad8bc3ed42 100644 --- a/packages/ses/src/intrinsics.js +++ b/packages/ses/src/intrinsics.js @@ -48,7 +48,9 @@ function initProperty(obj, name, desc) { preDesc.enumerable !== desc.enumerable || preDesc.configurable !== desc.configurable ) { - throw TypeError(`Conflicting definitions of ${name}`); + if (name !== 'harden') { + throw TypeError(`Conflicting definitions of ${name}`); + } } } defineProperty(obj, name, desc); diff --git a/packages/ses/src/make-hardener.js b/packages/ses/src/make-hardener.js index fbd9b086ab..471cc6f303 100644 --- a/packages/ses/src/make-hardener.js +++ b/packages/ses/src/make-hardener.js @@ -26,7 +26,7 @@ import { String, TypeError, WeakSet, - globalThis, + // globalThis, // if we suppress native harden apply, arrayForEach, defineProperty, @@ -131,13 +131,13 @@ const freezeTypedArray = array => { export const makeHardener = () => { // TODO Get the native hardener to suppressTrapping at each step, // rather than freeze. Until then, we cannot use it, which is *expensive*! - // TODO Comment out the following to skip the native hardener. + // TODO Comment in the following to use the native hardener. // // Use a native hardener if possible. - if (typeof globalThis.harden === 'function') { - const safeHarden = globalThis.harden; - return safeHarden; - } + // if (typeof globalThis.harden === 'function') { + // const safeHarden = globalThis.harden; + // return safeHarden; + // } const hardened = new WeakSet(); diff --git a/packages/ses/test/native-harden.test.js b/packages/ses/test/native-harden.test.js index 235ef69aa3..90c32b9f35 100644 --- a/packages/ses/test/native-harden.test.js +++ b/packages/ses/test/native-harden.test.js @@ -4,7 +4,7 @@ import { assertFakeFrozen } from './_lockdown-harden-unsafe.js'; // eslint-disable-next-line import/order import test from 'ava'; -test('mocked globalThis.harden', t => { +test.skip('mocked globalThis.harden', t => { t.is(harden, mockHarden); t.is(harden.isFake, true);