From bda1280a4073f1a9541801ae0327564919b5005c Mon Sep 17 00:00:00 2001 From: bek Date: Tue, 29 May 2018 20:18:55 +0500 Subject: [PATCH] remove usage of `Ember.EXTEND_PROTOTYPES` (#810) --- ember_debug/adapters/web-extension.js | 36 +++++++-------------------- ember_debug/adapters/websocket.js | 3 +-- 2 files changed, 10 insertions(+), 29 deletions(-) diff --git a/ember_debug/adapters/web-extension.js b/ember_debug/adapters/web-extension.js index 60945279d5..35cc3080a6 100644 --- a/ember_debug/adapters/web-extension.js +++ b/ember_debug/adapters/web-extension.js @@ -13,15 +13,12 @@ export default BasicAdapter.extend({ }, null, 'ember-inspector'); }, - sendMessage(options) { - options = options || {}; + sendMessage(options = {}) { // If prototype extensions are disabled, `Ember.A()` arrays // would not be considered native arrays, so it's not possible to // "clone" them through postMessage unless they are converted to a // native array. - if (!Ember.EXTEND_PROTOTYPES || Ember.EXTEND_PROTOTYPES.Array === false) { - options = deepCloneArrays(deepClone(options)); - } + options = deepClone(options); this.get('_chromePort').postMessage(options); }, @@ -78,33 +75,18 @@ export default BasicAdapter.extend({ * @param {Mixed} item The item to clone * @return {Mixed} */ -function deepCloneArrays(item) { +function deepClone(item) { + let clone = item; if (isArray(item)) { - item = item.slice(); + clone = new Array(item.length); item.forEach((child, key) => { - item[key] = deepCloneArrays(child); + clone[key] = deepClone(child); }); } else if (item && typeOf(item) === 'object') { + clone = {}; keys(item).forEach(key => { - item[key] = deepCloneArrays(item[key]); + clone[key] = deepClone(item[key]); }); } - return item; -} - -/** - * Recursive function that performs a deep clone on an object. - * - * @param {Any} obj - * @return {Any} Deep cloned object - */ -function deepClone(obj) { - if (obj && typeOf(obj) === 'object') { - let item = {}; - keys(obj).forEach(key => { - item[key] = deepClone(obj[key]); - }); - return item; - } - return obj; + return clone; } diff --git a/ember_debug/adapters/websocket.js b/ember_debug/adapters/websocket.js index efb2a2c348..81f5848ded 100644 --- a/ember_debug/adapters/websocket.js +++ b/ember_debug/adapters/websocket.js @@ -5,8 +5,7 @@ import { onReady } from '../utils/on-ready'; export default BasicAdapter.extend({ - sendMessage(options) { - options = options || {}; + sendMessage(options = {}) { this.get('socket').emit('emberInspectorMessage', options); },