From db37fa721c2906b63a7cb4e774f407f4f6b09a31 Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Wed, 16 Feb 2022 12:20:27 +0100 Subject: [PATCH] lib: add legacy built-in functions to primordials --- lib/.eslintrc.yaml | 3 +++ lib/internal/freeze_intrinsics.js | 3 +++ lib/internal/per_context/primordials.js | 9 +++++++++ 3 files changed, 15 insertions(+) diff --git a/lib/.eslintrc.yaml b/lib/.eslintrc.yaml index 82af09a42732ad..c88a81402ed408 100644 --- a/lib/.eslintrc.yaml +++ b/lib/.eslintrc.yaml @@ -138,6 +138,8 @@ rules: - name: decodeURIComponent - name: encodeURI - name: encodeURIComponent + - name: escape + - name: eval - name: Error ignore: - prepareStackTrace @@ -181,6 +183,7 @@ rules: - name: Uint32Array - name: Uint8Array - name: Uint8ClampedArray + - name: unescape - name: URIError - name: WeakMap into: Safe diff --git a/lib/internal/freeze_intrinsics.js b/lib/internal/freeze_intrinsics.js index ea613966980c96..a27d0a40cb6aef 100644 --- a/lib/internal/freeze_intrinsics.js +++ b/lib/internal/freeze_intrinsics.js @@ -122,7 +122,9 @@ const { decodeURIComponent, encodeURI, encodeURIComponent, + escape, globalThis, + unescape, } = primordials; const { @@ -231,6 +233,7 @@ module.exports = function() { // 19 The Global Object // 19.2 Function Properties of the Global Object + // eslint-disable-next-line node-core/prefer-primordials eval, // eslint-disable-next-line node-core/prefer-primordials isFinite, diff --git a/lib/internal/per_context/primordials.js b/lib/internal/per_context/primordials.js index 2c0df17fbe1170..7d9368e678cc96 100644 --- a/lib/internal/per_context/primordials.js +++ b/lib/internal/per_context/primordials.js @@ -154,6 +154,15 @@ function copyPrototype(src, dest, prefix) { primordials[fn.name] = fn; }); +// Create copies of legacy functions +[ + escape, + eval, + unescape, +].forEach((fn) => { + primordials[fn.name] = fn; +}); + // Create copies of the namespace objects [ 'JSON',