diff --git a/CHANGELOG.md b/CHANGELOG.md index be0f9867..b9cc8a9c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,7 @@ _This release is scheduled to be released on 2024-01-01._ - Fix the option eventClass on customEvents. - Fix yr API version in locationforecast call (#3227) +- Fix cloneObject() function to respect RegExp (#3237) ## [2.25.0] - 2023-10-01 diff --git a/js/class.js b/js/class.js index 4e769359..cffd72d4 100644 --- a/js/class.js +++ b/js/class.js @@ -90,6 +90,10 @@ function cloneObject(obj) { return obj; } + if (obj.constructor.name === "RegExp") { + return new RegExp(obj); + } + const temp = obj.constructor(); // give temp the original obj's constructor for (const key in obj) { temp[key] = cloneObject(obj[key]); diff --git a/tests/unit/classes/class_spec.js b/tests/unit/classes/class_spec.js index 5122840f..402fcaef 100644 --- a/tests/unit/classes/class_spec.js +++ b/tests/unit/classes/class_spec.js @@ -49,6 +49,13 @@ describe("File js/class", () => { expect(obj).toBe(expected); }); + it("should clone regex", () => { + const expected = /.*Magic/; + const obj = clone(expected); + expect(obj).toEqual(expected); + expect(expected === obj).toBe(false); + }); + it("should clone undefined", () => { const expected = undefined; const obj = clone(expected);