diff options
| author | Misko Hevery | 2010-10-20 07:22:15 -0700 | 
|---|---|---|
| committer | Misko Hevery | 2010-10-20 07:22:15 -0700 | 
| commit | 9c8b1800b90e14b643bab6ada8e96f8f850e84a6 (patch) | |
| tree | a2e7642934141bb1a4b7541bff3f2e9f08f39dfb | |
| parent | a27198d52e61adb9cedde04e51bbec74e66089da (diff) | |
| download | angular.js-9c8b1800b90e14b643bab6ada8e96f8f850e84a6.tar.bz2 | |
fixed negative numbers in Json
| -rw-r--r-- | src/Parser.js | 4 | ||||
| -rw-r--r-- | test/JsonSpec.js | 4 | 
2 files changed, 6 insertions, 2 deletions
| diff --git a/src/Parser.js b/src/Parser.js index 0970144f..7ad65f32 100644 --- a/src/Parser.js +++ b/src/Parser.js @@ -32,7 +32,7 @@ function lex(text, parseStringsForObjects){        index = 0,        json = [],        ch, -      lastCh = ','; // can start regexp +      lastCh = ':'; // can start regexp    while (index < text.length) {      ch = text.charAt(index); @@ -64,7 +64,7 @@ function lex(text, parseStringsForObjects){          tokens.push({index:index, text:ch2, fn:fn2});          index += 2;        } else if (fn) { -        tokens.push({index:index, text:ch, fn:fn}); +        tokens.push({index:index, text:ch, fn:fn, json: was('[,:') && is('+-')});          index += 1;        } else {          throw "Lexer Error: Unexpected next character [" + diff --git a/test/JsonSpec.js b/test/JsonSpec.js index 6fc40e09..17bb97b6 100644 --- a/test/JsonSpec.js +++ b/test/JsonSpec.js @@ -100,6 +100,10 @@ describe('json', function(){      expect(fromJson("{value:2.55, name:'misko'}")).toEqual({value:2.55, name:'misko'});    }); +  it('should parse negative / possitve numbers', function() { +    expect(fromJson("{neg:-2.55, pos:+.3, a:[-2, +.1, -.2, +.3]}")).toEqual({neg:-2.55, pos:+.3, a:[-2, +.1, -.2, +.3]}); +  }); +    describe('security', function(){      it('should not allow naked expressions', function(){        expect(function(){fromJson('1+2');}).toThrow("Did not understand '+2' while evaluating '1+2'."); | 
