| OLD | NEW |
| 1 part of dart.convert; | 1 part of dart.convert; |
| 2 | 2 |
| 3 class JsonUnsupportedObjectError extends Error { | 3 class JsonUnsupportedObjectError extends Error { |
| 4 final unsupportedObject; | 4 final unsupportedObject; |
| 5 final cause; | 5 final cause; |
| 6 JsonUnsupportedObjectError(this.unsupportedObject, {this.cause}); | 6 JsonUnsupportedObjectError(this.unsupportedObject, {this.cause}); |
| 7 String toString() { | 7 String toString() { |
| 8 if (cause != null) { | 8 if (cause != null) { |
| 9 return "Converting object to an encodable object failed."; | 9 return "Converting object to an encodable object failed."; |
| 10 } else { | 10 } else { |
| (...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 199 if (!_isDone) { | 199 if (!_isDone) { |
| 200 _isDone = true; | 200 _isDone = true; |
| 201 _sink.close(); | 201 _sink.close(); |
| 202 } | 202 } |
| 203 } | 203 } |
| 204 } | 204 } |
| 205 class JsonDecoder extends Converter<String, Object> { | 205 class JsonDecoder extends Converter<String, Object> { |
| 206 final _Reviver _reviver; | 206 final _Reviver _reviver; |
| 207 const JsonDecoder([reviver(var key, var value)]) : this._reviver = reviver; | 207 const JsonDecoder([reviver(var key, var value)]) : this._reviver = reviver; |
| 208 dynamic convert(String input) => _parseJson(input, _reviver); | 208 dynamic convert(String input) => _parseJson(input, _reviver); |
| 209 StringConversionSink startChunkedConversion(Sink<Object> sink) { | 209 external StringConversionSink startChunkedConversion(Sink<Object> sink); |
| 210 return new _JsonDecoderSink(_reviver, sink); | |
| 211 } | |
| 212 Stream<Object> bind(Stream<String> stream) => ((__x14) => DDC$RT.cast(__x14, | 210 Stream<Object> bind(Stream<String> stream) => ((__x14) => DDC$RT.cast(__x14, |
| 213 DDC$RT.type((DDC$async$.Stream<dynamic> _) {}), | 211 DDC$RT.type((DDC$async$.Stream<dynamic> _) {}), |
| 214 DDC$RT.type((DDC$async$.Stream<Object> _) {}), "CastDynamic", | 212 DDC$RT.type((DDC$async$.Stream<Object> _) {}), "CastDynamic", |
| 215 """line 509, column 49 of dart:convert/json.dart: """, | 213 """line 507, column 49 of dart:convert/json.dart: """, |
| 216 __x14 is DDC$async$.Stream<Object>, false))(super.bind(stream)); | 214 __x14 is DDC$async$.Stream<Object>, false))(super.bind(stream)); |
| 217 } | 215 } |
| 218 _parseJson(String source, reviver(key, value)) { | 216 external _parseJson(String source, reviver(key, value)); |
| 219 if (source is! String) throw new ArgumentError(source); | |
| 220 var parsed; | |
| 221 try { | |
| 222 parsed = JS('=Object|JSExtendableArray|Null|bool|num|String', | |
| 223 'JSON.parse(#)', source); | |
| 224 } catch (e) { | |
| 225 throw new FormatException(JS('String', 'String(#)', e)); | |
| 226 } | |
| 227 if (reviver == null) { | |
| 228 return _convertJsonToDartLazy(parsed); | |
| 229 } else { | |
| 230 return _convertJsonToDart(parsed, reviver); | |
| 231 } | |
| 232 } | |
| 233 Object _defaultToEncodable(object) => object.toJson(); | 217 Object _defaultToEncodable(object) => object.toJson(); |
| 234 abstract class _JsonStringifier { | 218 abstract class _JsonStringifier { |
| 235 static const int BACKSPACE = 0x08; | 219 static const int BACKSPACE = 0x08; |
| 236 static const int TAB = 0x09; | 220 static const int TAB = 0x09; |
| 237 static const int NEWLINE = 0x0a; | 221 static const int NEWLINE = 0x0a; |
| 238 static const int CARRIAGE_RETURN = 0x0d; | 222 static const int CARRIAGE_RETURN = 0x0d; |
| 239 static const int FORM_FEED = 0x0c; | 223 static const int FORM_FEED = 0x0c; |
| 240 static const int QUOTE = 0x22; | 224 static const int QUOTE = 0x22; |
| 241 static const int CHAR_0 = 0x30; | 225 static const int CHAR_0 = 0x30; |
| 242 static const int BACKSLASH = 0x5c; | 226 static const int BACKSLASH = 0x5c; |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 327 } | 311 } |
| 328 _removeSeen(object); | 312 _removeSeen(object); |
| 329 } catch (e) { | 313 } catch (e) { |
| 330 throw new JsonUnsupportedObjectError(object, cause: e); | 314 throw new JsonUnsupportedObjectError(object, cause: e); |
| 331 } | 315 } |
| 332 } | 316 } |
| 333 bool writeJsonValue(object) { | 317 bool writeJsonValue(object) { |
| 334 if (object is num) { | 318 if (object is num) { |
| 335 if (!object.isFinite) return false; | 319 if (!object.isFinite) return false; |
| 336 writeNumber(DDC$RT.cast(object, dynamic, num, "CastGeneral", | 320 writeNumber(DDC$RT.cast(object, dynamic, num, "CastGeneral", |
| 337 """line 692, column 19 of dart:convert/json.dart: """, object is num, | 321 """line 673, column 19 of dart:convert/json.dart: """, object is num, |
| 338 true)); | 322 true)); |
| 339 return true; | 323 return true; |
| 340 } else if (identical(object, true)) { | 324 } else if (identical(object, true)) { |
| 341 writeString('true'); | 325 writeString('true'); |
| 342 return true; | 326 return true; |
| 343 } else if (identical(object, false)) { | 327 } else if (identical(object, false)) { |
| 344 writeString('false'); | 328 writeString('false'); |
| 345 return true; | 329 return true; |
| 346 } else if (object == null) { | 330 } else if (object == null) { |
| 347 writeString('null'); | 331 writeString('null'); |
| 348 return true; | 332 return true; |
| 349 } else if (object is String) { | 333 } else if (object is String) { |
| 350 writeString('"'); | 334 writeString('"'); |
| 351 writeStringContent(DDC$RT.cast(object, dynamic, String, "CastGeneral", | 335 writeStringContent(DDC$RT.cast(object, dynamic, String, "CastGeneral", |
| 352 """line 705, column 26 of dart:convert/json.dart: """, | 336 """line 686, column 26 of dart:convert/json.dart: """, |
| 353 object is String, true)); | 337 object is String, true)); |
| 354 writeString('"'); | 338 writeString('"'); |
| 355 return true; | 339 return true; |
| 356 } else if (object is List) { | 340 } else if (object is List) { |
| 357 _checkCycle(object); | 341 _checkCycle(object); |
| 358 writeList(DDC$RT.cast(object, dynamic, DDC$RT.type((List<dynamic> _) {}), | 342 writeList(DDC$RT.cast(object, dynamic, DDC$RT.type((List<dynamic> _) {}), |
| 359 "CastGeneral", """line 710, column 17 of dart:convert/json.dart: """, | 343 "CastGeneral", """line 691, column 17 of dart:convert/json.dart: """, |
| 360 object is List<dynamic>, true)); | 344 object is List<dynamic>, true)); |
| 361 _removeSeen(object); | 345 _removeSeen(object); |
| 362 return true; | 346 return true; |
| 363 } else if (object is Map) { | 347 } else if (object is Map) { |
| 364 _checkCycle(object); | 348 _checkCycle(object); |
| 365 writeMap(DDC$RT.cast(object, dynamic, | 349 writeMap(DDC$RT.cast(object, dynamic, |
| 366 DDC$RT.type((Map<String, Object> _) {}), "CastGeneral", | 350 DDC$RT.type((Map<String, Object> _) {}), "CastGeneral", |
| 367 """line 715, column 16 of dart:convert/json.dart: """, | 351 """line 696, column 16 of dart:convert/json.dart: """, |
| 368 object is Map<String, Object>, false)); | 352 object is Map<String, Object>, false)); |
| 369 _removeSeen(object); | 353 _removeSeen(object); |
| 370 return true; | 354 return true; |
| 371 } else { | 355 } else { |
| 372 return false; | 356 return false; |
| 373 } | 357 } |
| 374 } | 358 } |
| 375 void writeList(List list) { | 359 void writeList(List list) { |
| 376 writeString('['); | 360 writeString('['); |
| 377 if (list.length > 0) { | 361 if (list.length > 0) { |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 421 void writeMap(Map map) { | 405 void writeMap(Map map) { |
| 422 if (map.isEmpty) { | 406 if (map.isEmpty) { |
| 423 writeString('{}'); | 407 writeString('{}'); |
| 424 } else { | 408 } else { |
| 425 writeString('{\n'); | 409 writeString('{\n'); |
| 426 _indentLevel++; | 410 _indentLevel++; |
| 427 bool first = true; | 411 bool first = true; |
| 428 map.forEach(((__x23) => DDC$RT.wrap( | 412 map.forEach(((__x23) => DDC$RT.wrap( |
| 429 (dynamic f(String __u15, Object __u16)) { | 413 (dynamic f(String __u15, Object __u16)) { |
| 430 dynamic c(String x0, Object x1) => f(DDC$RT.cast(x0, dynamic, String, | 414 dynamic c(String x0, Object x1) => f(DDC$RT.cast(x0, dynamic, String, |
| 431 "CastParam", """line 792, column 19 of dart:convert/json.dart: """, | 415 "CastParam", """line 773, column 19 of dart:convert/json.dart: """, |
| 432 x0 is String, true), x1); | 416 x0 is String, true), x1); |
| 433 return f == null ? null : c; | 417 return f == null ? null : c; |
| 434 }, __x23, __t20, __t17, "WrapLiteral", | 418 }, __x23, __t20, __t17, "WrapLiteral", |
| 435 """line 792, column 19 of dart:convert/json.dart: """, | 419 """line 773, column 19 of dart:convert/json.dart: """, |
| 436 __x23 is __t17))((String key, Object value) { | 420 __x23 is __t17))((String key, Object value) { |
| 437 if (!first) { | 421 if (!first) { |
| 438 writeString(",\n"); | 422 writeString(",\n"); |
| 439 } | 423 } |
| 440 writeIndentation(_indentLevel); | 424 writeIndentation(_indentLevel); |
| 441 writeString('"'); | 425 writeString('"'); |
| 442 writeStringContent(key); | 426 writeStringContent(key); |
| 443 writeString('": '); | 427 writeString('": '); |
| 444 writeObject(value); | 428 writeObject(value); |
| 445 first = false; | 429 first = false; |
| 446 })); | 430 })); |
| 447 writeString('\n'); | 431 writeString('\n'); |
| 448 _indentLevel--; | 432 _indentLevel--; |
| 449 writeIndentation(_indentLevel); | 433 writeIndentation(_indentLevel); |
| 450 writeString('}'); | 434 writeString('}'); |
| 451 } | 435 } |
| 452 } | 436 } |
| 453 } | 437 } |
| 454 class _JsonStringStringifier extends _JsonStringifier { | 438 class _JsonStringStringifier extends _JsonStringifier { |
| 455 final StringSink _sink; | 439 final StringSink _sink; |
| 456 _JsonStringStringifier(this._sink, _toEncodable) : super(DDC$RT.cast( | 440 _JsonStringStringifier(this._sink, _toEncodable) : super(DDC$RT.cast( |
| 457 _toEncodable, dynamic, __t24, "CastGeneral", | 441 _toEncodable, dynamic, __t24, "CastGeneral", |
| 458 """line 817, column 60 of dart:convert/json.dart: """, | 442 """line 798, column 60 of dart:convert/json.dart: """, |
| 459 _toEncodable is __t24, false)); | 443 _toEncodable is __t24, false)); |
| 460 static String stringify(object, toEncodable(object), String indent) { | 444 static String stringify(object, toEncodable(object), String indent) { |
| 461 StringBuffer output = new StringBuffer(); | 445 StringBuffer output = new StringBuffer(); |
| 462 printOn(object, output, toEncodable, indent); | 446 printOn(object, output, toEncodable, indent); |
| 463 return output.toString(); | 447 return output.toString(); |
| 464 } | 448 } |
| 465 static void printOn( | 449 static void printOn( |
| 466 object, StringSink output, toEncodable(object), String indent) { | 450 object, StringSink output, toEncodable(object), String indent) { |
| 467 var stringifier; | 451 var stringifier; |
| 468 if (indent == null) { | 452 if (indent == null) { |
| (...skipping 27 matching lines...) Expand all Loading... |
| 496 for (int i = 0; i < count; i++) writeString(_indent); | 480 for (int i = 0; i < count; i++) writeString(_indent); |
| 497 } | 481 } |
| 498 } | 482 } |
| 499 class _JsonUtf8Stringifier extends _JsonStringifier { | 483 class _JsonUtf8Stringifier extends _JsonStringifier { |
| 500 final int bufferSize; | 484 final int bufferSize; |
| 501 final Function addChunk; | 485 final Function addChunk; |
| 502 Uint8List buffer; | 486 Uint8List buffer; |
| 503 int index = 0; | 487 int index = 0; |
| 504 _JsonUtf8Stringifier(toEncodable, int bufferSize, this.addChunk) | 488 _JsonUtf8Stringifier(toEncodable, int bufferSize, this.addChunk) |
| 505 : super(DDC$RT.cast(toEncodable, dynamic, __t24, "CastGeneral", | 489 : super(DDC$RT.cast(toEncodable, dynamic, __t24, "CastGeneral", |
| 506 """line 893, column 15 of dart:convert/json.dart: """, | 490 """line 874, column 15 of dart:convert/json.dart: """, |
| 507 toEncodable is __t24, false)), | 491 toEncodable is __t24, false)), |
| 508 this.bufferSize = bufferSize, | 492 this.bufferSize = bufferSize, |
| 509 buffer = new Uint8List(bufferSize); | 493 buffer = new Uint8List(bufferSize); |
| 510 static void stringify(Object object, List<int> indent, | 494 static void stringify(Object object, List<int> indent, |
| 511 toEncodableFunction(Object o), int bufferSize, | 495 toEncodableFunction(Object o), int bufferSize, |
| 512 void addChunk(Uint8List chunk, int start, int end)) { | 496 void addChunk(Uint8List chunk, int start, int end)) { |
| 513 _JsonUtf8Stringifier stringifier; | 497 _JsonUtf8Stringifier stringifier; |
| 514 if (indent != null) { | 498 if (indent != null) { |
| 515 stringifier = new _JsonUtf8StringifierPretty( | 499 stringifier = new _JsonUtf8StringifierPretty( |
| 516 toEncodableFunction, indent, bufferSize, addChunk); | 500 toEncodableFunction, indent, bufferSize, addChunk); |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 597 } | 581 } |
| 598 buffer[index++] = byte; | 582 buffer[index++] = byte; |
| 599 } | 583 } |
| 600 } | 584 } |
| 601 class _JsonUtf8StringifierPretty extends _JsonUtf8Stringifier | 585 class _JsonUtf8StringifierPretty extends _JsonUtf8Stringifier |
| 602 with _JsonPrettyPrintMixin { | 586 with _JsonPrettyPrintMixin { |
| 603 final List<int> indent; | 587 final List<int> indent; |
| 604 _JsonUtf8StringifierPretty( | 588 _JsonUtf8StringifierPretty( |
| 605 toEncodableFunction, this.indent, bufferSize, addChunk) | 589 toEncodableFunction, this.indent, bufferSize, addChunk) |
| 606 : super(toEncodableFunction, DDC$RT.cast(bufferSize, dynamic, int, | 590 : super(toEncodableFunction, DDC$RT.cast(bufferSize, dynamic, int, |
| 607 "CastGeneral", """line 1031, column 36 of dart:convert/json.dart: """, | 591 "CastGeneral", """line 1012, column 36 of dart:convert/json.dart: """, |
| 608 bufferSize is int, true), DDC$RT.cast(addChunk, dynamic, Function, | 592 bufferSize is int, true), DDC$RT.cast(addChunk, dynamic, Function, |
| 609 "CastGeneral", """line 1031, column 48 of dart:convert/json.dart: """, | 593 "CastGeneral", """line 1012, column 48 of dart:convert/json.dart: """, |
| 610 addChunk is Function, true)); | 594 addChunk is Function, true)); |
| 611 void writeIndentation(int count) { | 595 void writeIndentation(int count) { |
| 612 List<int> indent = this.indent; | 596 List<int> indent = this.indent; |
| 613 int indentLength = indent.length; | 597 int indentLength = indent.length; |
| 614 if (indentLength == 1) { | 598 if (indentLength == 1) { |
| 615 int char = indent[0]; | 599 int char = indent[0]; |
| 616 while (count > 0) { | 600 while (count > 0) { |
| 617 writeByte(char); | 601 writeByte(char); |
| 618 count -= 1; | 602 count -= 1; |
| 619 } | 603 } |
| (...skipping 11 matching lines...) Expand all Loading... |
| 631 } | 615 } |
| 632 } | 616 } |
| 633 } | 617 } |
| 634 } | 618 } |
| 635 } | 619 } |
| 636 typedef dynamic __t7(dynamic __u8); | 620 typedef dynamic __t7(dynamic __u8); |
| 637 typedef dynamic __t11(Object __u12); | 621 typedef dynamic __t11(Object __u12); |
| 638 typedef void __t17(dynamic __u18, dynamic __u19); | 622 typedef void __t17(dynamic __u18, dynamic __u19); |
| 639 typedef dynamic __t20(String __u21, Object __u22); | 623 typedef dynamic __t20(String __u21, Object __u22); |
| 640 typedef Object __t24(Object __u25); | 624 typedef Object __t24(Object __u25); |
| OLD | NEW |