diff options
| -rw-r--r-- | src/Angular.js | 3 | ||||
| -rw-r--r-- | test/AngularSpec.js | 4 | 
2 files changed, 6 insertions, 1 deletions
diff --git a/src/Angular.js b/src/Angular.js index ec3be068..01b37969 100644 --- a/src/Angular.js +++ b/src/Angular.js @@ -751,9 +751,10 @@ function toJsonReplacer(key, value) {   *   * @param {Object|Array|Date|string|number} obj Input to be serialized into JSON.   * @param {boolean=} pretty If set to true, the JSON output will contain newlines and whitespace. - * @returns {string} Jsonified string representing `obj`. + * @returns {string|undefined} Jsonified string representing `obj`.   */  function toJson(obj, pretty) { +  if (typeof obj === 'undefined') return undefined;    return JSON.stringify(obj, toJsonReplacer, pretty ? '  ' : null);  } diff --git a/test/AngularSpec.js b/test/AngularSpec.js index febc0226..8e4fbb1a 100644 --- a/test/AngularSpec.js +++ b/test/AngularSpec.js @@ -879,5 +879,9 @@ describe('angular', function() {      it('should not serialize scope instances', inject(function($rootScope) {        expect(toJson({key: $rootScope})).toEqual('{"key":"$SCOPE"}');      })); + +    it('should serialize undefined as undefined', function() { +      expect(toJson(undefined)).toEqual(undefined); +    });    });  });  | 
