diff --git a/Libraries/UTFSequence.js b/Libraries/UTFSequence.js index 262dd4e9b..9286eed20 100644 --- a/Libraries/UTFSequence.js +++ b/Libraries/UTFSequence.js @@ -13,6 +13,8 @@ 'use strict'; +const deepFreezeAndThrowOnMutationInDev = require('deepFreezeAndThrowOnMutationInDev'); + /** * A collection of Unicode sequences for various characters and emoji. * @@ -20,7 +22,7 @@ * - Source code should be limitted to ASCII. * - Less chance of typos. */ -const UTFSequence = { +const UTFSequence = deepFreezeAndThrowOnMutationInDev({ MIDDOT: '\u00B7', // normal middle dot: · MIDDOT_SP: '\u00A0\u00B7\u00A0', //  ·  MIDDOT_KATAKANA: '\u30FB', // katakana middle dot @@ -30,6 +32,6 @@ const UTFSequence = { NDASH_SP: '\u00A0\u2013\u00A0', //  –  NBSP: '\u00A0', // non-breaking space:   PIZZA: '\uD83C\uDF55', -}; +}); module.exports = UTFSequence; diff --git a/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js b/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js index 9ab2cc4b1..4e651b110 100644 --- a/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +++ b/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js @@ -29,13 +29,13 @@ * Freezing the object and adding the throw mechanism is expensive and will * only be used in DEV. */ -function deepFreezeAndThrowOnMutationInDev(object: Object) { +function deepFreezeAndThrowOnMutationInDev(object: T): T { if (__DEV__) { if (typeof object !== 'object' || object === null || Object.isFrozen(object) || Object.isSealed(object)) { - return; + return object; } var keys = Object.keys(object); @@ -58,6 +58,7 @@ function deepFreezeAndThrowOnMutationInDev(object: Object) { } } } + return object; } function throwOnImmutableMutation(key, value) {