diff options
| -rw-r--r-- | src/JSON.js | 2 | ||||
| -rw-r--r-- | test/JsonTest.js | 7 | 
2 files changed, 8 insertions, 1 deletions
| diff --git a/src/JSON.js b/src/JSON.js index 340b075a..0d2fbca4 100644 --- a/src/JSON.js +++ b/src/JSON.js @@ -74,7 +74,7 @@ function toJsonArray(buf, obj, pretty, stack){        var childPretty = pretty ? pretty + "  " : false;        var keys = [];        for(var k in obj) { -        if (k.indexOf('$$') === 0 || obj[k] === undefined) +        if (!obj.hasOwnProperty(k) || k.indexOf('$$') === 0 || obj[k] === undefined)            continue;          keys.push(k);        } diff --git a/test/JsonTest.js b/test/JsonTest.js index 4afb7743..d077c0df 100644 --- a/test/JsonTest.js +++ b/test/JsonTest.js @@ -74,6 +74,13 @@ JsonTest.prototype.testItShouldPreventRecursion = function () {    assertEquals('{"a":"b","recursion":RECURSION}', angular.toJson(obj));  }; +JsonTest.prototype.testItShouldSerializeOnlyOwnProperties = function() { +  var parent = { p: 'p'}; +  var child = { c: 'c'}; +  child.__proto__ = parent; +  assertEquals('{"c":"c"}', angular.toJson(child)); +} +  JsonTest.prototype.testItShouldSerializeSameObjectsMultipleTimes = function () {    var obj = {a:'b'};    assertEquals('{"A":{"a":"b"},"B":{"a":"b"}}', angular.toJson({A:obj, B:obj})); | 
