OLD | NEW |
1 part of dart.convert; | 1 part of dart.convert; |
2 class JsonUnsupportedObjectError extends Error {final unsupportedObject; | 2 class JsonUnsupportedObjectError extends Error {final unsupportedObject; |
3 final cause; | 3 final cause; |
4 JsonUnsupportedObjectError(this.unsupportedObject, { | 4 JsonUnsupportedObjectError(this.unsupportedObject, { |
5 this.cause} | 5 this.cause} |
6 ); | 6 ); |
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 } | 10 } |
(...skipping 19 matching lines...) Expand all Loading... |
30 ) { | 30 ) { |
31 if (reviver == null) reviver = _reviver; | 31 if (reviver == null) reviver = _reviver; |
32 if (reviver == null) return decoder.convert(source); | 32 if (reviver == null) return decoder.convert(source); |
33 return new JsonDecoder(reviver).convert(source); | 33 return new JsonDecoder(reviver).convert(source); |
34 } | 34 } |
35 String encode(Object value, { | 35 String encode(Object value, { |
36 toEncodable(var object)} | 36 toEncodable(var object)} |
37 ) { | 37 ) { |
38 if (toEncodable == null) toEncodable = _toEncodable; | 38 if (toEncodable == null) toEncodable = _toEncodable; |
39 if (toEncodable == null) return encoder.convert(value); | 39 if (toEncodable == null) return encoder.convert(value); |
40 return new JsonEncoder(DEVC$RT.cast(toEncodable, __t8, __t6, "CompositeCast", "
""line 142, column 28 of dart:convert/json.dart: """, toEncodable is __t6, false
)).convert(value); | 40 return new JsonEncoder(DEVC$RT.cast(toEncodable, __CastType8, __CastType6, "Com
positeCast", """line 142, column 28 of dart:convert/json.dart: """, toEncodable
is __CastType6, false)).convert(value); |
41 } | 41 } |
42 JsonEncoder get encoder { | 42 JsonEncoder get encoder { |
43 if (_toEncodable == null) return const JsonEncoder(); | 43 if (_toEncodable == null) return const JsonEncoder(); |
44 return new JsonEncoder(DEVC$RT.cast(_toEncodable, _ToEncodable, __t6, "Composit
eCast", """line 147, column 28 of dart:convert/json.dart: """, _toEncodable is _
_t6, false)); | 44 return new JsonEncoder(DEVC$RT.cast(_toEncodable, _ToEncodable, __CastType6, "C
ompositeCast", """line 147, column 28 of dart:convert/json.dart: """, _toEncodab
le is __CastType6, false)); |
45 } | 45 } |
46 JsonDecoder get decoder { | 46 JsonDecoder get decoder { |
47 if (_reviver == null) return const JsonDecoder(); | 47 if (_reviver == null) return const JsonDecoder(); |
48 return new JsonDecoder(_reviver); | 48 return new JsonDecoder(_reviver); |
49 } | 49 } |
50 } | 50 } |
51 class JsonEncoder extends Converter<Object, String> {final String indent; | 51 class JsonEncoder extends Converter<Object, String> {final String indent; |
52 final Function _toEncodable; | 52 final Function _toEncodable; |
53 const JsonEncoder([Object toEncodable(Object nonSerializable)]) : this.indent =
null, this._toEncodable = toEncodable; | 53 const JsonEncoder([Object toEncodable(Object nonSerializable)]) : this.indent =
null, this._toEncodable = toEncodable; |
54 const JsonEncoder.withIndent(this.indent, [Object toEncodable(Object nonSeriali
zable)]) : this._toEncodable = toEncodable; | 54 const JsonEncoder.withIndent(this.indent, [Object toEncodable(Object nonSeriali
zable)]) : this._toEncodable = toEncodable; |
55 String convert(Object object) => _JsonStringStringifier.stringify(object, DEVC$
RT.cast(_toEncodable, Function, __t8, "ImplicitCast", """line 243, column 48 of
dart:convert/json.dart: """, _toEncodable is __t8, true), indent); | 55 String convert(Object object) => _JsonStringStringifier.stringify(object, DEVC$
RT.cast(_toEncodable, Function, __CastType8, "ImplicitCast", """line 243, column
48 of dart:convert/json.dart: """, _toEncodable is __CastType8, true), indent); |
56 ChunkedConversionSink<Object> startChunkedConversion(Sink<String> sink) { | 56 ChunkedConversionSink<Object> startChunkedConversion(Sink<String> sink) { |
57 if (sink is! StringConversionSink) { | 57 if (sink is! StringConversionSink) { |
58 sink = new StringConversionSink.from(sink); | 58 sink = new StringConversionSink.from(sink); |
59 } | 59 } |
60 else if (sink is _Utf8EncoderSink) { | 60 else if (sink is _Utf8EncoderSink) { |
61 return new _JsonUtf8EncoderSink(sink._sink, _toEncodable, JsonUtf8Encoder._utf8E
ncode(indent), JsonUtf8Encoder.DEFAULT_BUFFER_SIZE); | 61 return new _JsonUtf8EncoderSink(sink._sink, _toEncodable, JsonUtf8Encoder._utf8E
ncode(indent), JsonUtf8Encoder.DEFAULT_BUFFER_SIZE); |
62 } | 62 } |
63 return new _JsonEncoderSink(DEVC$RT.cast(sink, DEVC$RT.type((Sink<String> _) { | 63 return new _JsonEncoderSink(DEVC$RT.cast(sink, DEVC$RT.type((Sink<String> _) { |
64 } | 64 } |
65 ), StringConversionSink, "ImplicitCast", """line 262, column 33 of dart:convert/
json.dart: """, sink is StringConversionSink, true), _toEncodable, indent); | 65 ), StringConversionSink, "ImplicitCast", """line 262, column 33 of dart:convert/
json.dart: """, sink is StringConversionSink, true), _toEncodable, indent); |
66 } | 66 } |
67 Stream<String> bind(Stream<Object> stream) => ((__x10) => DEVC$RT.cast(__x10, D
EVC$RT.type((DDC$async$.Stream<dynamic> _) { | 67 Stream<String> bind(Stream<Object> stream) => ((__x10) => DEVC$RT.cast(__x10, D
EVC$RT.type((DDC$async$.Stream<dynamic> _) { |
68 } | 68 } |
69 ), DEVC$RT.type((DDC$async$.Stream<String> _) { | 69 ), DEVC$RT.type((DDC$async$.Stream<String> _) { |
70 } | 70 } |
71 ), "CompositeCast", """line 266, column 49 of dart:convert/json.dart: """, __x10
is DDC$async$.Stream<String>, false))(super.bind(stream)); | 71 ), "CompositeCast", """line 266, column 49 of dart:convert/json.dart: """, __x10
is DDC$async$.Stream<String>, false))(super.bind(stream)); |
72 Converter<Object, dynamic> fuse(Converter<String, dynamic> other) { | 72 Converter<Object, dynamic> fuse(Converter<String, dynamic> other) { |
73 if (other is Utf8Encoder) { | 73 if (other is Utf8Encoder) { |
74 return new JsonUtf8Encoder(indent, DEVC$RT.cast(_toEncodable, Function, __t11, "
CompositeCast", """line 270, column 42 of dart:convert/json.dart: """, _toEncoda
ble is __t11, false)); | 74 return new JsonUtf8Encoder(indent, DEVC$RT.cast(_toEncodable, Function, __CastTy
pe11, "CompositeCast", """line 270, column 42 of dart:convert/json.dart: """, _t
oEncodable is __CastType11, false)); |
75 } | 75 } |
76 return super.fuse(other); | 76 return super.fuse(other); |
77 } | 77 } |
78 } | 78 } |
79 class JsonUtf8Encoder extends Converter<Object, List<int>> {static const int DE
FAULT_BUFFER_SIZE = 256; | 79 class JsonUtf8Encoder extends Converter<Object, List<int>> {static const int DE
FAULT_BUFFER_SIZE = 256; |
80 final List<int> _indent; | 80 final List<int> _indent; |
81 final Function _toEncodable; | 81 final Function _toEncodable; |
82 final int _bufferSize; | 82 final int _bufferSize; |
83 JsonUtf8Encoder([String indent, toEncodable(Object object), int bufferSize = DE
FAULT_BUFFER_SIZE]) : _indent = _utf8Encode(indent), _toEncodable = toEncodable,
_bufferSize = bufferSize; | 83 JsonUtf8Encoder([String indent, toEncodable(Object object), int bufferSize = DE
FAULT_BUFFER_SIZE]) : _indent = _utf8Encode(indent), _toEncodable = toEncodable,
_bufferSize = bufferSize; |
84 static List<int> _utf8Encode(String string) { | 84 static List<int> _utf8Encode(String string) { |
85 if (string == null) return null; | 85 if (string == null) return null; |
86 if (string.isEmpty) return new Uint8List(0); | 86 if (string.isEmpty) return new Uint8List(0); |
87 checkAscii: { | 87 checkAscii: { |
88 for (int i = 0; i < string.length; i++) { | 88 for (int i = 0; i < string.length; i++) { |
89 if (string.codeUnitAt(i) >= 0x80) break checkAscii; | 89 if (string.codeUnitAt(i) >= 0x80) break checkAscii; |
90 } | 90 } |
91 return string.codeUnits; | 91 return string.codeUnits; |
92 } | 92 } |
93 return UTF8.encode(string); | 93 return UTF8.encode(string); |
94 } | 94 } |
95 List<int> convert(Object object) { | 95 List<int> convert(Object object) { |
96 List<List<int>> bytes = <List<int>> []; | 96 List<List<int>> bytes = <List<int>> []; |
97 void addChunk(Uint8List chunk, int start, int end) { | 97 void addChunk(Uint8List chunk, int start, int end) { |
98 if (start > 0 || end < chunk.length) { | 98 if (start > 0 || end < chunk.length) { |
99 int length = end - start; | 99 int length = end - start; |
100 chunk = new Uint8List.view(chunk.buffer, chunk.offsetInBytes + start, length); | 100 chunk = new Uint8List.view(chunk.buffer, chunk.offsetInBytes + start, length); |
101 } | 101 } |
102 bytes.add(chunk); | 102 bytes.add(chunk); |
103 } | 103 } |
104 _JsonUtf8Stringifier.stringify(object, _indent, DEVC$RT.cast(_toEncodable, Func
tion, __t11, "CompositeCast", """line 352, column 36 of dart:convert/json.dart:
""", _toEncodable is __t11, false), _bufferSize, addChunk); | 104 _JsonUtf8Stringifier.stringify(object, _indent, DEVC$RT.cast(_toEncodable, Func
tion, __CastType11, "CompositeCast", """line 352, column 36 of dart:convert/json
.dart: """, _toEncodable is __CastType11, false), _bufferSize, addChunk); |
105 if (bytes.length == 1) return bytes[0]; | 105 if (bytes.length == 1) return bytes[0]; |
106 int length = 0; | 106 int length = 0; |
107 for (int i = 0; i < bytes.length; i++) { | 107 for (int i = 0; i < bytes.length; i++) { |
108 length += bytes[i].length; | 108 length += bytes[i].length; |
109 } | 109 } |
110 Uint8List result = new Uint8List(length); | 110 Uint8List result = new Uint8List(length); |
111 for (int i = 0, offset = 0; i < bytes.length; i++) { | 111 for (int i = 0, offset = 0; i < bytes.length; i++) { |
112 var byteList = bytes[i]; | 112 var byteList = bytes[i]; |
113 int end = offset + byteList.length; | 113 int end = offset + byteList.length; |
114 result.setRange(offset, end, byteList); | 114 result.setRange(offset, end, byteList); |
(...skipping 26 matching lines...) Expand all Loading... |
141 final Function _toEncodable; | 141 final Function _toEncodable; |
142 final StringConversionSink _sink; | 142 final StringConversionSink _sink; |
143 bool _isDone = false; | 143 bool _isDone = false; |
144 _JsonEncoderSink(this._sink, this._toEncodable, this._indent); | 144 _JsonEncoderSink(this._sink, this._toEncodable, this._indent); |
145 void add(Object o) { | 145 void add(Object o) { |
146 if (_isDone) { | 146 if (_isDone) { |
147 throw new StateError("Only one call to add allowed"); | 147 throw new StateError("Only one call to add allowed"); |
148 } | 148 } |
149 _isDone = true; | 149 _isDone = true; |
150 ClosableStringSink stringSink = _sink.asStringSink(); | 150 ClosableStringSink stringSink = _sink.asStringSink(); |
151 _JsonStringStringifier.printOn(o, stringSink, DEVC$RT.cast(_toEncodable, Functi
on, __t8, "ImplicitCast", """line 425, column 51 of dart:convert/json.dart: """,
_toEncodable is __t8, true), _indent); | 151 _JsonStringStringifier.printOn(o, stringSink, DEVC$RT.cast(_toEncodable, Functi
on, __CastType8, "ImplicitCast", """line 425, column 51 of dart:convert/json.dar
t: """, _toEncodable is __CastType8, true), _indent); |
152 stringSink.close(); | 152 stringSink.close(); |
153 } | 153 } |
154 void close() { | 154 void close() { |
155 } | 155 } |
156 } | 156 } |
157 class _JsonUtf8EncoderSink extends ChunkedConversionSink<Object> {final ByteCon
versionSink _sink; | 157 class _JsonUtf8EncoderSink extends ChunkedConversionSink<Object> {final ByteCon
versionSink _sink; |
158 final List<int> _indent; | 158 final List<int> _indent; |
159 final Function _toEncodable; | 159 final Function _toEncodable; |
160 final int _bufferSize; | 160 final int _bufferSize; |
161 bool _isDone = false; | 161 bool _isDone = false; |
162 _JsonUtf8EncoderSink(this._sink, this._toEncodable, this._indent, this._bufferS
ize); | 162 _JsonUtf8EncoderSink(this._sink, this._toEncodable, this._indent, this._bufferS
ize); |
163 void _addChunk(Uint8List chunk, int start, int end) { | 163 void _addChunk(Uint8List chunk, int start, int end) { |
164 _sink.addSlice(chunk, start, end, false); | 164 _sink.addSlice(chunk, start, end, false); |
165 } | 165 } |
166 void add(Object object) { | 166 void add(Object object) { |
167 if (_isDone) { | 167 if (_isDone) { |
168 throw new StateError("Only one call to add allowed"); | 168 throw new StateError("Only one call to add allowed"); |
169 } | 169 } |
170 _isDone = true; | 170 _isDone = true; |
171 _JsonUtf8Stringifier.stringify(object, _indent, DEVC$RT.cast(_toEncodable, Func
tion, __t11, "CompositeCast", """line 455, column 53 of dart:convert/json.dart:
""", _toEncodable is __t11, false), _bufferSize, _addChunk); | 171 _JsonUtf8Stringifier.stringify(object, _indent, DEVC$RT.cast(_toEncodable, Func
tion, __CastType11, "CompositeCast", """line 455, column 53 of dart:convert/json
.dart: """, _toEncodable is __CastType11, false), _bufferSize, _addChunk); |
172 _sink.close(); | 172 _sink.close(); |
173 } | 173 } |
174 void close() { | 174 void close() { |
175 if (!_isDone) { | 175 if (!_isDone) { |
176 _isDone = true; | 176 _isDone = true; |
177 _sink.close(); | 177 _sink.close(); |
178 } | 178 } |
179 } | 179 } |
180 } | 180 } |
181 class JsonDecoder extends Converter<String, Object> {final _Reviver _reviver; | 181 class JsonDecoder extends Converter<String, Object> {final _Reviver _reviver; |
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
386 } | 386 } |
387 ); | 387 ); |
388 writeString('\n'); | 388 writeString('\n'); |
389 _indentLevel--; | 389 _indentLevel--; |
390 writeIndentation(_indentLevel); | 390 writeIndentation(_indentLevel); |
391 writeString('}'); | 391 writeString('}'); |
392 } | 392 } |
393 } | 393 } |
394 } | 394 } |
395 class _JsonStringStringifier extends _JsonStringifier {final StringSink _sink; | 395 class _JsonStringStringifier extends _JsonStringifier {final StringSink _sink; |
396 _JsonStringStringifier(this._sink, _toEncodable) : super(DEVC$RT.cast(_toEncoda
ble, dynamic, __t6, "CompositeCast", """line 798, column 60 of dart:convert/json
.dart: """, _toEncodable is __t6, false)); | 396 _JsonStringStringifier(this._sink, _toEncodable) : super(DEVC$RT.cast(_toEncoda
ble, dynamic, __CastType6, "CompositeCast", """line 798, column 60 of dart:conve
rt/json.dart: """, _toEncodable is __CastType6, false)); |
397 static String stringify(object, toEncodable(object), String indent) { | 397 static String stringify(object, toEncodable(object), String indent) { |
398 StringBuffer output = new StringBuffer(); | 398 StringBuffer output = new StringBuffer(); |
399 printOn(object, output, toEncodable, indent); | 399 printOn(object, output, toEncodable, indent); |
400 return output.toString(); | 400 return output.toString(); |
401 } | 401 } |
402 static void printOn(object, StringSink output, toEncodable(object), String inde
nt) { | 402 static void printOn(object, StringSink output, toEncodable(object), String inde
nt) { |
403 var stringifier; | 403 var stringifier; |
404 if (indent == null) { | 404 if (indent == null) { |
405 stringifier = new _JsonStringStringifier(output, toEncodable); | 405 stringifier = new _JsonStringStringifier(output, toEncodable); |
406 } | 406 } |
(...skipping 18 matching lines...) Expand all Loading... |
425 class _JsonStringStringifierPretty extends _JsonStringStringifier with _JsonPre
ttyPrintMixin {final String _indent; | 425 class _JsonStringStringifierPretty extends _JsonStringStringifier with _JsonPre
ttyPrintMixin {final String _indent; |
426 _JsonStringStringifierPretty(StringSink sink, Function toEncodable, this._inden
t) : super(sink, toEncodable); | 426 _JsonStringStringifierPretty(StringSink sink, Function toEncodable, this._inden
t) : super(sink, toEncodable); |
427 void writeIndentation(int count) { | 427 void writeIndentation(int count) { |
428 for (int i = 0; i < count; i++) writeString(_indent); | 428 for (int i = 0; i < count; i++) writeString(_indent); |
429 } | 429 } |
430 } | 430 } |
431 class _JsonUtf8Stringifier extends _JsonStringifier {final int bufferSize; | 431 class _JsonUtf8Stringifier extends _JsonStringifier {final int bufferSize; |
432 final Function addChunk; | 432 final Function addChunk; |
433 Uint8List buffer; | 433 Uint8List buffer; |
434 int index = 0; | 434 int index = 0; |
435 _JsonUtf8Stringifier(toEncodable, int bufferSize, this.addChunk) : super(DEVC$R
T.cast(toEncodable, dynamic, __t6, "CompositeCast", """line 874, column 15 of da
rt:convert/json.dart: """, toEncodable is __t6, false)), this.bufferSize = buffe
rSize, buffer = new Uint8List(bufferSize); | 435 _JsonUtf8Stringifier(toEncodable, int bufferSize, this.addChunk) : super(DEVC$R
T.cast(toEncodable, dynamic, __CastType6, "CompositeCast", """line 874, column 1
5 of dart:convert/json.dart: """, toEncodable is __CastType6, false)), this.buff
erSize = bufferSize, buffer = new Uint8List(bufferSize); |
436 static void stringify(Object object, List<int> indent, toEncodableFunction(Obje
ct o), int bufferSize, void addChunk(Uint8List chunk, int start, int end)) { | 436 static void stringify(Object object, List<int> indent, toEncodableFunction(Obje
ct o), int bufferSize, void addChunk(Uint8List chunk, int start, int end)) { |
437 _JsonUtf8Stringifier stringifier; | 437 _JsonUtf8Stringifier stringifier; |
438 if (indent != null) { | 438 if (indent != null) { |
439 stringifier = new _JsonUtf8StringifierPretty(toEncodableFunction, indent, buffer
Size, addChunk); | 439 stringifier = new _JsonUtf8StringifierPretty(toEncodableFunction, indent, buffer
Size, addChunk); |
440 } | 440 } |
441 else { | 441 else { |
442 stringifier = new _JsonUtf8Stringifier(toEncodableFunction, bufferSize, addChunk
); | 442 stringifier = new _JsonUtf8Stringifier(toEncodableFunction, bufferSize, addChunk
); |
443 } | 443 } |
444 stringifier.writeObject(object); | 444 stringifier.writeObject(object); |
445 stringifier.flush(); | 445 stringifier.flush(); |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
536 index = end; | 536 index = end; |
537 } | 537 } |
538 else { | 538 else { |
539 for (int i = 0; i < indentLength; i++) { | 539 for (int i = 0; i < indentLength; i++) { |
540 writeByte(indent[i]); | 540 writeByte(indent[i]); |
541 } | 541 } |
542 } | 542 } |
543 } | 543 } |
544 } | 544 } |
545 } | 545 } |
546 typedef Object __t6(Object __u7); | 546 typedef Object __CastType6(Object __u7); |
547 typedef dynamic __t8(dynamic __u9); | 547 typedef dynamic __CastType8(dynamic __u9); |
548 typedef dynamic __t11(Object __u12); | 548 typedef dynamic __CastType11(Object __u12); |
OLD | NEW |