diff --git a/can-list.js b/can-list.js index 9218050..362aeca 100644 --- a/can-list.js +++ b/can-list.js @@ -8,14 +8,11 @@ var canEvent = require('can-event-queue/map/map'); var ObservationRecorder = require('can-observation-recorder'); var CID = require('can-cid'); -var isPromise = require('can-util/js/is-promise/is-promise'); -var makeArray = require('can-util/js/make-array/make-array'); -var assign = require('can-util/js/assign/assign'); -var types = require('can-types'); -var each = require('can-util/js/each/each'); var canReflect = require('can-reflect'); +var assign = require('can-assign'); +var types = require('can-types'); var canSymbol = require('can-symbol'); -var CIDMap = require("can-util/js/cid-map/cid-map"); +var CIDMap = require("can-cid/map/map"); // Helpers for `observable` lists. @@ -51,14 +48,14 @@ var List = Map.extend( this.length = 0; CID(this, ".map"); this._setupComputedProperties(); - instances = instances || []; + instances = instances === undefined ? [] : canReflect.toArray(instances); var teardownMapping; - if (isPromise(instances)) { + if (canReflect.isPromise(instances)) { this.replace(instances); } else { teardownMapping = instances.length && mapHelpers.addToMap(instances, this); - this.push.apply(this, makeArray(instances || [])); + this.push.apply(this, instances); } if (teardownMapping) { @@ -167,7 +164,7 @@ var List = Map.extend( return canReflect.serialize(this, CIDMap); }, splice: function (index, howMany) { - var args = makeArray(arguments), + var args = canReflect.toArray(arguments), added =[], i, len, listIndex, allSame = args.length > 2; @@ -225,10 +222,10 @@ var List = Map.extend( getArgs = function (args) { return args[0] && Array.isArray(args[0]) ? args[0] : - makeArray(args); + canReflect.toArray(args); }; // Create `push`, `pop`, `shift`, and `unshift` -each({ +canReflect.eachKey({ /** * @function can-list.prototype.push push * @parent can-list.prototype @@ -347,7 +344,7 @@ each({ }; }); -each({ +canReflect.eachKey({ /** * @function can-list.prototype.pop pop * @parent can-list.prototype @@ -533,7 +530,7 @@ assign(List.prototype, { * ``` */ reverse: function() { - var list = [].reverse.call(makeArray(this)); + var list = [].reverse.call(canReflect.toArray(this)); return this.replace(list); }, @@ -604,12 +601,12 @@ assign(List.prototype, { MapType = this.constructor.Map; // Go through each of the passed `arguments` and // see if it is list-like, an array, or something else - each(arguments, function(arg) { + canReflect.each(arguments, function(arg) { if((canReflect.isObservableLike(arg) && canReflect.isListLike(arg)) || Array.isArray(arg)) { // If it is list-like we want convert to a JS array then // pass each item of the array to serializeNonTypes - var arr = (canReflect.isObservableLike(arg) && canReflect.isListLike(arg)) ? makeArray(arg) : arg; - each(arr, function(innerArg) { + var arr = (canReflect.isObservableLike(arg) && canReflect.isListLike(arg)) ? canReflect.toArray(arg) : arg; + canReflect.each(arr, function(innerArg) { serializeNonTypes(MapType, innerArg, args); }); } @@ -624,7 +621,7 @@ assign(List.prototype, { // as well (We know it should be list-like), then // concat with our passed in args, then pass it to // list constructor to make it back into a list - return new this.constructor(Array.prototype.concat.apply(makeArray(this), args)); + return new this.constructor(Array.prototype.concat.apply(canReflect.toArray(this), args)); }, /** @@ -724,7 +721,7 @@ assign(List.prototype, { * ``` */ replace: function (newList) { - if (isPromise(newList)) { + if (canReflect.isPromise(newList)) { if(this._promise) { this._promise.__isCurrentPromise = false; } @@ -737,7 +734,8 @@ assign(List.prototype, { } }); } else { - this.splice.apply(this, [0, this.length].concat(makeArray(newList || []))); + newList = newList === undefined ? [] : canReflect.toArray(newList); + this.splice.apply(this, [0, this.length].concat(newList)); } return this; diff --git a/package.json b/package.json index 0127add..22c665d 100644 --- a/package.json +++ b/package.json @@ -33,6 +33,7 @@ "npmAlgorithm": "flat" }, "dependencies": { + "can-assign": "^1.1.1", "can-cid": "^1.1.2", "can-construct": "^3.2.1", "can-event-queue": "<2.0.0", @@ -44,7 +45,6 @@ "can-stache-key": "^1.0.0", "can-symbol": "^1.4.1", "can-types": "^1.1.0", - "can-util": "^3.10.12", "can-compute": "^4.0.0", "can-queues": "<2.0.0", "can-map": "^4.0.0"