From 4f655e71d9a1d2bbe0eae321f11111e27c18adc8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9sar=20Izurieta?= Date: Sun, 5 Apr 2015 04:39:36 -0300 Subject: [PATCH] Make deepCopy work correctly with arrays --- lib/ace/lib/lang.js | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/lib/ace/lib/lang.js b/lib/ace/lib/lang.js index 863bbb55..13b76f77 100644 --- a/lib/ace/lib/lang.js +++ b/lib/ace/lib/lang.js @@ -89,13 +89,24 @@ exports.deepCopy = function (obj) { return obj; var copy = cons(); - for (var key in obj) { - if (typeof obj[key] === "object") { - copy[key] = exports.deepCopy(obj[key]); - } else { - copy[key] = obj[key]; + if (Array.isArray(obj)) { + for (var key = 0; key < obj.length; key++) { + if (typeof obj[key] === "object") { + copy[key] = exports.deepCopy(obj[key]); + } else { + copy[key] = obj[key]; + } + } + } else { + for (var key in obj) { + if (typeof obj[key] === "object") { + copy[key] = exports.deepCopy(obj[key]); + } else { + copy[key] = obj[key]; + } } } + return copy; };