diff options
| -rw-r--r-- | src/Angular.js | 3 | ||||
| -rw-r--r-- | src/JSON.js | 2 | ||||
| -rw-r--r-- | src/apis.js | 2 | ||||
| -rw-r--r-- | src/filters.js | 4 | ||||
| -rw-r--r-- | test/AngularSpec.js | 13 |
5 files changed, 20 insertions, 4 deletions
diff --git a/src/Angular.js b/src/Angular.js index 16b31d4b..73f2841a 100644 --- a/src/Angular.js +++ b/src/Angular.js @@ -317,6 +317,7 @@ function isDefined(value){ return typeof value != $undefined; } function isObject(value){ return value!=_null && typeof value == $object;} function isString(value){ return typeof value == $string;} function isNumber(value){ return typeof value == $number;} +function isDate(value){ return value instanceof Date; } function isArray(value) { return value instanceof Array; } function isFunction(value){ return typeof value == $function;} function isBoolean(value) { return typeof value == $boolean;} @@ -431,7 +432,7 @@ function copy(source, destination){ if (source) { if (isArray(source)) { destination = copy(source, []); - } else if (source instanceof Date) { + } else if (isDate(source)) { destination = new Date(source.getTime()); } else if (isObject(source)) { destination = copy(source, {}); diff --git a/src/JSON.js b/src/JSON.js index de718527..9fca3bcb 100644 --- a/src/JSON.js +++ b/src/JSON.js @@ -72,7 +72,7 @@ function toJsonArray(buf, obj, pretty, stack) { sep = true; } buf.push("]"); - } else if (obj instanceof Date) { + } else if (isDate(obj)) { buf.push(angular['String']['quoteUnicode'](angular['Date']['toString'](obj))); } else { buf.push("{"); diff --git a/src/apis.js b/src/apis.js index ffa2e788..c232e4a9 100644 --- a/src/apis.js +++ b/src/apis.js @@ -4,7 +4,7 @@ var angularGlobal = { var type = typeof obj; if (type == $object) { if (obj instanceof Array) return $array; - if (obj instanceof Date) return $date; + if (isDate(obj)) return $date; if (obj.nodeType == 1) return $element; } return type; diff --git a/src/filters.js b/src/filters.js index 2dde740c..ee0ef076 100644 --- a/src/filters.js +++ b/src/filters.js @@ -199,7 +199,9 @@ angularFilter.date = function(date, format) { if (isNumber(date)) { date = new Date(date); - } else if (!(date instanceof Date)) { + } + + if (!isDate(date)) { return date; } diff --git a/test/AngularSpec.js b/test/AngularSpec.js index b00aa631..23f06887 100644 --- a/test/AngularSpec.js +++ b/test/AngularSpec.js @@ -328,3 +328,16 @@ describe('angular service', function() { expect(result.third).toBeTruthy(); }); }); + +describe('isDate', function() { + it('should return true for Date object', function() { + expect(isDate(new Date())).toBe(true); + }); + + it('should return false for non Date objects', function() { + expect(isDate([])).toBe(false); + expect(isDate('')).toBe(false); + expect(isDate(23)).toBe(false); + expect(isDate({})).toBe(false); + }); +}); |
