From d666798875fbb66051153898ac2f26980cb13d18 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Tue, 30 Mar 2021 22:31:22 +0700 Subject: [PATCH] prevent possible `RegExp#exec` problems in some old engines, close #920 --- CHANGELOG.md | 1 + packages/core-js/internals/regexp-exec.js | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d2c8d6c4dc55..70e4923fca1a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ ## Changelog ##### Unreleased - [`Array` find from last proposal](https://github.com/tc39/proposal-array-find-from-last) moved to the stage 2, [March TC39 meeting](https://github.com/babel/proposals/issues/71#issuecomment-795916535) +- Prevented possible `RegExp#exec` problems in some old engines, [#920](https://github.com/zloirock/core-js/issues/920) - Updated Samsung Internet compat data mapping to 14.0 ##### 3.9.1 - 2021.03.01 diff --git a/packages/core-js/internals/regexp-exec.js b/packages/core-js/internals/regexp-exec.js index 8fecf3751838..1254e1e556ff 100644 --- a/packages/core-js/internals/regexp-exec.js +++ b/packages/core-js/internals/regexp-exec.js @@ -1,12 +1,13 @@ 'use strict'; var regexpFlags = require('./regexp-flags'); var stickyHelpers = require('./regexp-sticky-helpers'); +var shared = require('./shared'); var nativeExec = RegExp.prototype.exec; // This always refers to the native implementation, because the // String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js, // which loads this file before patching the method. -var nativeReplace = String.prototype.replace; +var nativeReplace = shared('native-string-replace', String.prototype.replace); var patchedExec = nativeExec;