From 84733fc7bfd88cde322646d82edac0b000fead09 Mon Sep 17 00:00:00 2001 From: anpaulan Date: Sun, 6 Oct 2024 18:38:24 -0400 Subject: [PATCH 1/7] docs reflect EMPTY_VALUE in defaultValue --- packages/engine/Source/Core/defaultValue.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/engine/Source/Core/defaultValue.js b/packages/engine/Source/Core/defaultValue.js index 50c20d554986..642162e11e93 100644 --- a/packages/engine/Source/Core/defaultValue.js +++ b/packages/engine/Source/Core/defaultValue.js @@ -1,15 +1,19 @@ /** * Returns the first parameter if not undefined, otherwise the second parameter. * Useful for setting a default value for a parameter. - * + * @namespace defaultValue + * @global * @function - * + * * @param {*} a * @param {*} b * @returns {*} Returns the first parameter if not undefined, otherwise the second parameter. * * @example * param = Cesium.defaultValue(param, 'default'); + * + * @property {object} EMPTY_OBJECT - A frozen empty object that can be used as the default value + * for options passed as an object literal. */ function defaultValue(a, b) { if (a !== undefined && a !== null) { @@ -19,10 +23,8 @@ function defaultValue(a, b) { } /** - * A frozen empty object that can be used as the default value for options passed as - * an object literal. * @type {object} - * @memberof defaultValue + * @constant */ defaultValue.EMPTY_OBJECT = Object.freeze({}); From 4aca55ec41dd6d3c9150556641786a1180d029f2 Mon Sep 17 00:00:00 2001 From: anpaulan Date: Sun, 6 Oct 2024 19:09:14 -0400 Subject: [PATCH 2/7] cleanup unnecessary code --- packages/engine/Source/Core/defaultValue.js | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/packages/engine/Source/Core/defaultValue.js b/packages/engine/Source/Core/defaultValue.js index 642162e11e93..58df2df1feda 100644 --- a/packages/engine/Source/Core/defaultValue.js +++ b/packages/engine/Source/Core/defaultValue.js @@ -1,19 +1,16 @@ /** * Returns the first parameter if not undefined, otherwise the second parameter. * Useful for setting a default value for a parameter. - * @namespace defaultValue - * @global * @function - * + * * @param {*} a * @param {*} b * @returns {*} Returns the first parameter if not undefined, otherwise the second parameter. * * @example * param = Cesium.defaultValue(param, 'default'); - * - * @property {object} EMPTY_OBJECT - A frozen empty object that can be used as the default value - * for options passed as an object literal. + * + * @property {object} EMPTY_OBJECT - A frozen empty object that can be used as the default value for options passed as an object literal. */ function defaultValue(a, b) { if (a !== undefined && a !== null) { From 1152185e9dc97b651971e3af31201c76983d717e Mon Sep 17 00:00:00 2001 From: anpaulan Date: Sun, 6 Oct 2024 19:10:27 -0400 Subject: [PATCH 3/7] standalone EmptyObject for upcoming defaultValue refactor --- packages/engine/Source/Core/EmptyObject.js | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 packages/engine/Source/Core/EmptyObject.js diff --git a/packages/engine/Source/Core/EmptyObject.js b/packages/engine/Source/Core/EmptyObject.js new file mode 100644 index 000000000000..250298e3e270 --- /dev/null +++ b/packages/engine/Source/Core/EmptyObject.js @@ -0,0 +1,8 @@ +/** + * A global immutable empty object for performance reasons + * + * @type {object} + */ +const EmptyObject = {}; + +export default Object.freeze(EmptyObject); From 631de39ca6ee37bae01ef85856add2f34d584264 Mon Sep 17 00:00:00 2001 From: anpaulan Date: Sun, 6 Oct 2024 20:44:56 -0400 Subject: [PATCH 4/7] deprecated EMPTY_OBJECT per #11326 --- packages/engine/Source/Core/defaultValue.js | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/packages/engine/Source/Core/defaultValue.js b/packages/engine/Source/Core/defaultValue.js index 58df2df1feda..6121b5f06339 100644 --- a/packages/engine/Source/Core/defaultValue.js +++ b/packages/engine/Source/Core/defaultValue.js @@ -1,3 +1,6 @@ +import EmptyObject from "./EmptyObject.js"; +import deprecationWarning from "./deprecationWarning.js"; + /** * Returns the first parameter if not undefined, otherwise the second parameter. * Useful for setting a default value for a parameter. @@ -10,7 +13,8 @@ * @example * param = Cesium.defaultValue(param, 'default'); * - * @property {object} EMPTY_OBJECT - A frozen empty object that can be used as the default value for options passed as an object literal. + * @property {object} EMPTY_OBJECT - DEPRECATED (use EmptyObject).
+ * A frozen empty object that can be used as the default value for options passed as an object literal. */ function defaultValue(a, b) { if (a !== undefined && a !== null) { @@ -22,7 +26,17 @@ function defaultValue(a, b) { /** * @type {object} * @constant + * @deprecated This property is deprecated and will be removed in Cesium 1.122. See Issue 113216 */ -defaultValue.EMPTY_OBJECT = Object.freeze({}); +Object.defineProperty(defaultValue, "EMPTY_OBJECT", { + get: function () { + deprecationWarning( + "defaultValue.EMPTY_OBJECT", + "defaultValue.EMPTY_OBJECT is deprecated and will be removed in Cesium 1.122. See https://github.com/CesiumGS/cesium/issues/11326", + ); + return EmptyObject; + }, + configurable: false, +}); export default defaultValue; From 61cf0bf097b829edc51634fe8045d2426584b4da Mon Sep 17 00:00:00 2001 From: anpaulan Date: Sun, 6 Oct 2024 21:26:52 -0400 Subject: [PATCH 5/7] Added Deprecation changelog for defaultValue.EMPTY_OBJECT --- CHANGES.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGES.md b/CHANGES.md index fc914d1a4267..d37325dbc288 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,5 +1,9 @@ # Change Log +##### Deprecated :hourglass_flowing_sand: + +- `defaultValue.EMPTY_OBJECT` has been deprecated and will be removed in 1.125. Use `EmptyObject` instead. + ### 1.122 - 2024-10-01 #### @cesium/engine From 14158096074c6de9d76f9631cda047338183396b Mon Sep 17 00:00:00 2001 From: anpaulan Date: Sun, 6 Oct 2024 21:27:54 -0400 Subject: [PATCH 6/7] Added my name to CONTRIBUTORS.md --- CONTRIBUTORS.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index d9dbdf94d7f2..0ed9bdcf1431 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -207,6 +207,7 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for details on how to contribute to Cesiu ## [Individual CLA](Documentation/Contributors/CLAs/individual-contributor-license-agreement-v1.0.pdf) +- [Paul An](https://github.com/anpaulan) - [Brandon Landry](https://github.com/hotpocket) - [Victor Berchet](https://github.com/vicb) - [Caleb Morse](https://github.com/cmorse) From a2f5bc0435611bc1a0eb7953a16e98a36578be20 Mon Sep 17 00:00:00 2001 From: anpaulan Date: Sun, 6 Oct 2024 21:29:58 -0400 Subject: [PATCH 7/7] Changed removal version from 1.122 to 1.125 --- packages/engine/Source/Core/defaultValue.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/engine/Source/Core/defaultValue.js b/packages/engine/Source/Core/defaultValue.js index 6121b5f06339..ecce970d63d2 100644 --- a/packages/engine/Source/Core/defaultValue.js +++ b/packages/engine/Source/Core/defaultValue.js @@ -26,13 +26,13 @@ function defaultValue(a, b) { /** * @type {object} * @constant - * @deprecated This property is deprecated and will be removed in Cesium 1.122. See Issue 113216 + * @deprecated This property is deprecated and will be removed in Cesium 1.125. See Issue 113216 */ Object.defineProperty(defaultValue, "EMPTY_OBJECT", { get: function () { deprecationWarning( "defaultValue.EMPTY_OBJECT", - "defaultValue.EMPTY_OBJECT is deprecated and will be removed in Cesium 1.122. See https://github.com/CesiumGS/cesium/issues/11326", + "defaultValue.EMPTY_OBJECT is deprecated and will be removed in Cesium 1.125. See https://github.com/CesiumGS/cesium/issues/11326", ); return EmptyObject; },