From c90cb998a03127256179decaa21cbea89e6d33c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1=D0=BA=D0=BE=D0=B2=D0=BE=D1=80=D0=BE=D0=B4=D0=B0=20?= =?UTF-8?q?=D0=9D=D0=B8=D0=BA=D0=B8=D1=82=D0=B0=20=D0=90=D0=BD=D0=B4=D1=80?= =?UTF-8?q?=D0=B5=D0=B5=D0=B2=D0=B8=D1=87?= Date: Sat, 23 Jan 2021 00:28:40 +0300 Subject: [PATCH 1/2] Avoid hitting __proto__ --- clone.js | 2 +- polyfills.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/clone.js b/clone.js index 028356c..ca49dde 100644 --- a/clone.js +++ b/clone.js @@ -7,7 +7,7 @@ function clone (obj) { return obj if (obj instanceof Object) - var copy = { __proto__: obj.__proto__ } + var copy = { __proto__: Object.getPrototypeOf(obj) } else var copy = Object.create(null) diff --git a/polyfills.js b/polyfills.js index a5808d2..bc6178f 100644 --- a/polyfills.js +++ b/polyfills.js @@ -132,7 +132,7 @@ function patch (fs) { } // This ensures `util.promisify` works as it does for native `fs.read`. - read.__proto__ = fs$read + if (Object.setPrototypeOf) Object.setPrototypeOf(read, fs$read) return read })(fs.read) From 11f46d0ae9036f4a1e14f0ef8c1568f345b019b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1=D0=BA=D0=BE=D0=B2=D0=BE=D1=80=D0=BE=D0=B4=D0=B0=20?= =?UTF-8?q?=D0=9D=D0=B8=D0=BA=D0=B8=D1=82=D0=B0=20=D0=90=D0=BD=D0=B4=D1=80?= =?UTF-8?q?=D0=B5=D0=B5=D0=B2=D0=B8=D1=87?= Date: Wed, 27 Jan 2021 21:07:03 +0300 Subject: [PATCH 2/2] fixup: polyfill getPrototypeOf --- clone.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/clone.js b/clone.js index ca49dde..dff3cc8 100644 --- a/clone.js +++ b/clone.js @@ -2,12 +2,16 @@ module.exports = clone +var getPrototypeOf = Object.getPrototypeOf || function (obj) { + return obj.__proto__ +} + function clone (obj) { if (obj === null || typeof obj !== 'object') return obj if (obj instanceof Object) - var copy = { __proto__: Object.getPrototypeOf(obj) } + var copy = { __proto__: getPrototypeOf(obj) } else var copy = Object.create(null)