anchor.diff:        expect(json.parse('[["a"]]').result, [['a']]);
       });
       test('invalid', () {
  -      expect(json.parse('[').isFailure());
  -      expect(json.parse('[1').isFailure());
  -      expect(json.parse('[1,').isFailure());
  -      expect(json.parse('[1,]').isFailure());
  -      expect(json.parse('[1 2]').isFailure());
  -      expect(json.parse('[]]').isFailure());
  +      expect(json.parse('[').isFailure(), isTrue);
  +      expect(json.parse('[1').isFailure(), isTrue);
  +      expect(json.parse('[1,').isFailure(), isTrue);
  +      expect(json.parse('[1,]').isFailure(), isTrue);
  +      expect(json.parse('[1 2]').isFailure(), isTrue);
  +      expect(json.parse('[]]').isFailure(), isTrue);
       });
     });
   
  
positive.code:       expect(json.parse('"\\t"').result, '\t');
      });
      test('invalid string', () {
        expect(json.parse('"').isFailure());
        expect(json.parse('"a').isFailure());
        expect(json.parse('"a\\\"').isFailure());
      });
    });
  
    group('browser', () {
      test('Internet Explorer', () {
        var input = '{"recordset": null, "type": "change", "fromElement": null, "toElement": null, "altLeft": false, "keyCode": 0, "repeat": false, "reason": 0, "behaviorCookie": 0, "contentOverflow": false, "behaviorPart": 0, "dataTransfer": null, "ctrlKey": false, "shiftLeft": false, "dataFld": "", "qualifier": "", "wheelDelta": 0, "bookmarks": null, "button": 0, "srcFilter": null, "nextPage": "", "cancelBubble": false, "x": 89, "y": 502, "screenX": 231, "screenY": 1694, "srcUrn": "", "boundElements": {"length": 0}, "clientX": 89, "clientY": 502, "propertyName": "", "shiftKey": false, "ctrlLeft": false, "offsetX": 25, "offsetY": 2, "altKey": false}';
        expect(json.parse(input).isSuccess());
      });
      test('FireFox', () {
        var input = '{"type": "change", "eventPhase": 2, "bubbles": true, "cancelable": true, "timeStamp": 0, "CAPTURING_PHASE": 1, "AT_TARGET": 2, "BUBBLING_PHASE": 3, "isTrusted": true, "MOUSEDOWN": 1, "MOUSEUP": 2, "MOUSEOVER": 4, "MOUSEOUT": 8, "MOUSEMOVE": 16, "MOUSEDRAG": 32, "CLICK": 64, "DBLCLICK": 128, "KEYDOWN": 256, "KEYUP": 512, "KEYPRESS": 1024, "DRAGDROP": 2048, "FOCUS": 4096, "BLUR": 8192, "SELECT": 16384, "CHANGE": 32768, "RESET": 65536, "SUBMIT": 131072, "SCROLL": 262144, "LOAD": 524288, "UNLOAD": 1048576, "XFER_DONE": 2097152, "ABORT": 4194304, "ERROR": 8388608, "LOCATE": 16777216, "MOVE": 33554432, "RESIZE": 67108864, "FORWARD": 134217728, "HELP": 268435456, "BACK": 536870912, "TEXT": 1073741824, "ALT_MASK": 1, "CONTROL_MASK": 2, "SHIFT_MASK": 4, "META_MASK": 8}';
        expect(json.parse(input).isSuccess());
      });
      test('WebKit', () {
        var input = '{"returnValue": true, "timeStamp": 1226697417289, "eventPhase": 2, "type": "change", "cancelable": false, "bubbles": true, "cancelBubble": false, "MOUSEOUT": 8, "FOCUS": 4096, "CHANGE": 32768, "MOUSEMOVE": 16, "AT_TARGET": 2, "SELECT": 16384, "BLUR": 8192, "KEYUP": 512, "MOUSEDOWN": 1, "MOUSEDRAG": 32, "BUBBLING_PHASE": 3, "MOUSEUP": 2, "CAPTURING_PHASE": 1, "MOUSEOVER": 4, "CLICK": 64, "DBLCLICK": 128, "KEYDOWN": 256, "KEYPRESS": 1024, "DRAGDROP": 2048}';
        expect(json.parse(input).isSuccess());
      });
    });
  
  
negative.code:       expect(json.parse('1e+2').result, 100);
      });
      test('invalid integer', () {
        expect(json.parse('00').isFailure(), isTrue);
        expect(json.parse('01').isFailure(), isTrue);
      });
      test('valid float', () {
        expect(json.parse('0.0').result, 0.0);
  