diff options
| -rw-r--r-- | src/JSON.js | 6 | ||||
| -rw-r--r-- | src/service/parse.js | 20 | 
2 files changed, 14 insertions, 12 deletions
diff --git a/src/JSON.js b/src/JSON.js index 7fdbf1a1..d0ded009 100644 --- a/src/JSON.js +++ b/src/JSON.js @@ -40,15 +40,17 @@ function fromJson(json, useNative) {    try {      if (useNative && window.JSON && window.JSON.parse) {        obj = JSON.parse(json); -      return transformDates(obj); +    } else { +      obj = parser(json, true).primary()();      } -    return parser(json, true).primary()(); +    return transformDates(obj);    } catch (e) {      error("fromJson error: ", json, e);      throw e;    }    // TODO make forEach optionally recursive and remove this function +  // TODO(misko): remove this once the $http service is checked in.    function transformDates(obj) {      if (isString(obj) && obj.length === DATE_ISOSTRING_LN) {        return angularString.toDate(obj); diff --git a/src/service/parse.js b/src/service/parse.js index 41fff7d5..f7b24a3c 100644 --- a/src/service/parse.js +++ b/src/service/parse.js @@ -27,9 +27,8 @@ var OPERATORS = {  };  var ESCAPE = {"n":"\n", "f":"\f", "r":"\r", "t":"\t", "v":"\v", "'":"'", '"':'"'}; -function lex(text, parseStringsForObjects){ -  var dateParseLength = parseStringsForObjects ? DATE_ISOSTRING_LN : -1, -      tokens = [], +function lex(text){ +  var tokens = [],        token,        index = 0,        json = [], @@ -199,12 +198,13 @@ function lex(text, parseStringsForObjects){          escape = true;        } else if (ch == quote) {          index++; -        tokens.push({index:start, text:rawString, string:string, json:true, -          fn:function() { -            return (string.length == dateParseLength) -              ? angular['String']['toDate'](string) -              : string; -          }}); +        tokens.push({ +          index:start, +          text:rawString, +          string:string, +          json:true, +          fn:function() { return string; } +        });          return;        } else {          string += ch; @@ -219,7 +219,7 @@ function lex(text, parseStringsForObjects){  function parser(text, json){    var ZERO = valueFn(0), -      tokens = lex(text, json), +      tokens = lex(text),        assignment = _assignment,        assignable = logicalOR,        functionCall = _functionCall,  | 
