diff --git a/reflections/get-set/get-set-test.js b/reflections/get-set/get-set-test.js index 529ba30..2fc0f58 100644 --- a/reflections/get-set/get-set-test.js +++ b/reflections/get-set/get-set-test.js @@ -90,3 +90,18 @@ QUnit.test("setValue", function(){ QUnit.deepEqual(obj, {value: 2}, "can.setValue"); }); + +QUnit.test("splice", function(){ + var arr = ["a","b"]; + + getSetReflections.splice(arr, 0, 1); + + QUnit.deepEqual(arr, ["b"], "removes item with no additions"); + + arr = ["a","b"]; + + getSetReflections.splice(arr, 0, 1, ["c", "d"]); + + QUnit.deepEqual(arr, ["c","d","b"], "removes item with no additions"); + +}); diff --git a/reflections/get-set/get-set.js b/reflections/get-set/get-set.js index 604087d..e9fc7a6 100644 --- a/reflections/get-set/get-set.js +++ b/reflections/get-set/get-set.js @@ -191,6 +191,10 @@ var reflections = { howMany = removing; } + if(arguments.length <= 3){ + adding = []; + } + var splice = obj[canSymbol.for("can.splice")]; if(splice) { return splice.call(obj, index, howMany, adding);