Comparing version
@@ -219,2 +219,21 @@ | ||
function indexOf(haystack, needle) { | ||
for(var i = 0; i < haystack.length; i += 1) { | ||
var straw = haystack[i]; | ||
if( | ||
getDeltaType(straw) == 'class' && | ||
straw.constructor == needle.constructor | ||
) { | ||
if(typeof straw.equals == 'function' && straw.equals(needle)) { | ||
return i; | ||
} | ||
} else { | ||
if(getDeltaType(straw) == 'class') { straw = straw.toString(); } | ||
if(getDeltaType(needle) == 'class') { needle = needle.toString(); } | ||
if(straw == needle) { return i; } | ||
} | ||
} | ||
return -1; | ||
} | ||
function applyRename(obj, rename) { | ||
@@ -283,3 +302,3 @@ for(var aPath in rename) { | ||
for(var i = 0; i < pull[prop].length; i += 1) { | ||
var index = arr.indexOf(pull[prop][i]); | ||
var index = indexOf(arr, pull[prop][i]); | ||
if(index > -1) { arr.splice(index, 1); } | ||
@@ -289,3 +308,3 @@ } | ||
var arr = traverse(subPath, obj); | ||
var index = arr.indexOf(pull[prop]); | ||
var index = indexOf(arr, pull[prop]); | ||
if(index > -1) { arr.splice(index, 1); } | ||
@@ -292,0 +311,0 @@ } |
{ | ||
"name": "primitive", | ||
"version": "0.4.1", | ||
"version": "0.4.2", | ||
"description": "", | ||
@@ -5,0 +5,0 @@ "main": "./lib/primitive.js", |
@@ -182,6 +182,9 @@ | ||
it('can apply array removals', function() { | ||
var a = {}; | ||
var b = {}; | ||
var testCases = [ | ||
[{ a: [1] }, { $pull: { a: { $each: [1] }}}, { a: []}], | ||
[{ a: [1] }, { $pull: { a: 1 }}, { a: []}], | ||
[{ a: [1, 2] }, { $pull: { a: { $each: [1] }}}, { a: [2]}] | ||
[{ a: [1, 2] }, { $pull: { a: { $each: [1] }}}, { a: [2]}], | ||
[{ a: [a, b] }, { $pull: { a: { $each: [a] }}}, { a: [b]}] | ||
]; | ||
@@ -196,6 +199,9 @@ | ||
it('can apply array additions', function() { | ||
var a = {}; | ||
var b = {}; | ||
var testCases = [ | ||
[{ a: [] }, { $push: { a: { $each: [1] }}}, { a: [1]}], | ||
[{ a: [] }, { $push: { a: 1 }}, { a: [1]}], | ||
[{ a: [1] }, { $push: { a: { $each: [2] }}}, { a: [1, 2]}] | ||
[{ a: [1] }, { $push: { a: { $each: [2] }}}, { a: [1, 2]}], | ||
[{ a: [a] }, { $push: { a: { $each: [b] }}}, { a: [a, b]}] | ||
]; | ||
@@ -202,0 +208,0 @@ |
30393
2.47%959
2.57%