From 0149597da84fe2fdb5f48b868c69e4ce09b3bbf3 Mon Sep 17 00:00:00 2001 From: Brian Cavalier Date: Wed, 7 Dec 2011 09:41:19 -0500 Subject: [PATCH] Abstracting safe array copy function --- wire.js | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/wire.js b/wire.js index c811e65..459655c 100644 --- a/wire.js +++ b/wire.js @@ -315,11 +315,11 @@ define(['require', 'when', 'wire/base'], function(require, when, basePlugin) { factories.module = moduleFactory; factories.create = instanceFactory; factories.wire = wireFactory; - - listeners = parent.listeners ? [].concat(parent.listeners) : []; + + listeners = delegateArray(parent.listeners);// ? [].concat(parent.listeners) : []; // Proxies is an array, have to concat - proxies = parent.proxies ? [].concat(parent.proxies) : []; + proxies = delegateArray(parent.proxies);// ? [].concat(parent.proxies) : []; proxied = []; modulesToLoad = []; @@ -1026,6 +1026,16 @@ define(['require', 'when', 'wire/base'], function(require, when, basePlugin) { return typeof it == 'function'; } + /** + * Creates a new {Array} with the same contents as array + * @param array {Array} + * @return {Array} a new {Array} with the same contents as array. If array is falsey, + * returns a new empty {Array} + */ + function delegateArray(array) { + return array ? [].concat(array) : []; + } + // In case Object.create isn't available function T() { }