diff --git a/lib/camel_case_keys.js b/lib/camel_case_keys.js index 557e4fe4..55e04f3e 100644 --- a/lib/camel_case_keys.js +++ b/lib/camel_case_keys.js @@ -29,18 +29,17 @@ function camelCaseKeys(obj) { if (typeof obj !== 'object') throw new TypeError('obj must be an object!'); const keys = Object.keys(obj); + const { length } = keys; const result = {}; - for (let i = 0, len = keys.length; i < len; i++) { - const key = keys[i]; - const value = obj[key]; - const newKey = toCamelCase(key); + for (let i = 0; i < length; i++) { + const oldKey = keys[i]; + const newKey = toCamelCase(oldKey); - if (newKey === key) { - result[key] = value; - } else { - result[newKey] = value; - Object.defineProperty(result, key, { + result[newKey] = obj[oldKey]; + + if (newKey !== oldKey) { + Object.defineProperty(result, oldKey, { get: getter(newKey), set: setter(newKey), configurable: true,