Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(188)

Side by Side Diff: lib/runtime/dart/convert.js

Issue 1147143007: fixes #206, add checking for unary ops (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: merged Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « lib/runtime/dart/collection.js ('k') | lib/runtime/dart/core.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 var convert = dart.defineLibrary(convert, {}); 1 var convert = dart.defineLibrary(convert, {});
2 var core = dart.import(core); 2 var core = dart.import(core);
3 var async = dart.import(async); 3 var async = dart.import(async);
4 var typed_data = dart.import(typed_data); 4 var typed_data = dart.import(typed_data);
5 var _internal = dart.import(_internal); 5 var _internal = dart.import(_internal);
6 var collection = dart.import(collection); 6 var collection = dart.import(collection);
7 (function(exports, core, async, typed_data, _internal, collection) { 7 (function(exports, core, async, typed_data, _internal, collection) {
8 'use strict'; 8 'use strict';
9 let Codec$ = dart.generic(function(S, T) { 9 let Codec$ = dart.generic(function(S, T) {
10 class Codec extends core.Object { 10 class Codec extends core.Object {
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 this[_allowInvalid] = allowInvalid; 67 this[_allowInvalid] = allowInvalid;
68 super.Encoding(); 68 super.Encoding();
69 } 69 }
70 get name() { 70 get name() {
71 return "us-ascii"; 71 return "us-ascii";
72 } 72 }
73 decode(bytes, opts) { 73 decode(bytes, opts) {
74 let allowInvalid = opts && 'allowInvalid' in opts ? opts.allowInvalid : nu ll; 74 let allowInvalid = opts && 'allowInvalid' in opts ? opts.allowInvalid : nu ll;
75 if (allowInvalid == null) 75 if (allowInvalid == null)
76 allowInvalid = this[_allowInvalid]; 76 allowInvalid = this[_allowInvalid];
77 if (allowInvalid) { 77 if (dart.notNull(allowInvalid)) {
78 return dart.const(new AsciiDecoder({allowInvalid: true})).convert(bytes) ; 78 return dart.const(new AsciiDecoder({allowInvalid: true})).convert(bytes) ;
79 } else { 79 } else {
80 return dart.const(new AsciiDecoder({allowInvalid: false})).convert(bytes ); 80 return dart.const(new AsciiDecoder({allowInvalid: false})).convert(bytes );
81 } 81 }
82 } 82 }
83 get encoder() { 83 get encoder() {
84 return dart.const(new AsciiEncoder()); 84 return dart.const(new AsciiEncoder());
85 } 85 }
86 get decoder() { 86 get decoder() {
87 return this[_allowInvalid] ? dart.const(new AsciiDecoder({allowInvalid: tr ue})) : dart.const(new AsciiDecoder({allowInvalid: false})); 87 return dart.notNull(this[_allowInvalid]) ? dart.const(new AsciiDecoder({al lowInvalid: true})) : dart.const(new AsciiDecoder({allowInvalid: false}));
88 } 88 }
89 } 89 }
90 dart.setSignature(AsciiCodec, { 90 dart.setSignature(AsciiCodec, {
91 constructors: () => ({AsciiCodec: [AsciiCodec, [], {allowInvalid: core.bool} ]}), 91 constructors: () => ({AsciiCodec: [AsciiCodec, [], {allowInvalid: core.bool} ]}),
92 methods: () => ({decode: [core.String, [core.List$(core.int)], {allowInvalid : core.bool}]}) 92 methods: () => ({decode: [core.String, [core.List$(core.int)], {allowInvalid : core.bool}]})
93 }); 93 });
94 let ASCII = dart.const(new AsciiCodec()); 94 let ASCII = dart.const(new AsciiCodec());
95 let _ASCII_MASK = 127; 95 let _ASCII_MASK = 127;
96 let Converter$ = dart.generic(function(S, T) { 96 let Converter$ = dart.generic(function(S, T) {
97 class Converter extends core.Object { 97 class Converter extends core.Object {
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
205 } 205 }
206 addSlice(source, start, end, isLast) { 206 addSlice(source, start, end, isLast) {
207 core.RangeError.checkValidRange(start, end, source.length); 207 core.RangeError.checkValidRange(start, end, source.length);
208 for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull( i) + 1) { 208 for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull( i) + 1) {
209 let codeUnit = source[dartx.codeUnitAt](i); 209 let codeUnit = source[dartx.codeUnitAt](i);
210 if ((dart.notNull(codeUnit) & ~dart.notNull(this[_subsetMask])) != 0) { 210 if ((dart.notNull(codeUnit) & ~dart.notNull(this[_subsetMask])) != 0) {
211 throw new core.ArgumentError(`Source contains invalid character with c ode point: ${codeUnit}.`); 211 throw new core.ArgumentError(`Source contains invalid character with c ode point: ${codeUnit}.`);
212 } 212 }
213 } 213 }
214 this[_sink].add(source[dartx.codeUnits][dartx.sublist](start, end)); 214 this[_sink].add(source[dartx.codeUnits][dartx.sublist](start, end));
215 if (isLast) { 215 if (dart.notNull(isLast)) {
216 this.close(); 216 this.close();
217 } 217 }
218 } 218 }
219 } 219 }
220 dart.setSignature(_UnicodeSubsetEncoderSink, { 220 dart.setSignature(_UnicodeSubsetEncoderSink, {
221 constructors: () => ({_UnicodeSubsetEncoderSink: [_UnicodeSubsetEncoderSink, [core.int, ByteConversionSink]]}), 221 constructors: () => ({_UnicodeSubsetEncoderSink: [_UnicodeSubsetEncoderSink, [core.int, ByteConversionSink]]}),
222 methods: () => ({ 222 methods: () => ({
223 close: [dart.void, []], 223 close: [dart.void, []],
224 addSlice: [dart.void, [core.String, core.int, core.int, core.bool]] 224 addSlice: [dart.void, [core.String, core.int, core.int, core.bool]]
225 }) 225 })
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
279 let allowInvalid = opts && 'allowInvalid' in opts ? opts.allowInvalid : fa lse; 279 let allowInvalid = opts && 'allowInvalid' in opts ? opts.allowInvalid : fa lse;
280 super._UnicodeSubsetDecoder(allowInvalid, _ASCII_MASK); 280 super._UnicodeSubsetDecoder(allowInvalid, _ASCII_MASK);
281 } 281 }
282 startChunkedConversion(sink) { 282 startChunkedConversion(sink) {
283 let stringSink = null; 283 let stringSink = null;
284 if (dart.is(sink, StringConversionSink)) { 284 if (dart.is(sink, StringConversionSink)) {
285 stringSink = sink; 285 stringSink = sink;
286 } else { 286 } else {
287 stringSink = StringConversionSink.from(sink); 287 stringSink = StringConversionSink.from(sink);
288 } 288 }
289 if (this[_allowInvalid]) { 289 if (dart.notNull(this[_allowInvalid])) {
290 return new _ErrorHandlingAsciiDecoderSink(stringSink.asUtf8Sink(false)); 290 return new _ErrorHandlingAsciiDecoderSink(stringSink.asUtf8Sink(false));
291 } else { 291 } else {
292 return new _SimpleAsciiDecoderSink(stringSink); 292 return new _SimpleAsciiDecoderSink(stringSink);
293 } 293 }
294 } 294 }
295 } 295 }
296 dart.setSignature(AsciiDecoder, { 296 dart.setSignature(AsciiDecoder, {
297 constructors: () => ({AsciiDecoder: [AsciiDecoder, [], {allowInvalid: core.b ool}]}), 297 constructors: () => ({AsciiDecoder: [AsciiDecoder, [], {allowInvalid: core.b ool}]}),
298 methods: () => ({startChunkedConversion: [ByteConversionSink, [core.Sink$(co re.String)]]}) 298 methods: () => ({startChunkedConversion: [ByteConversionSink, [core.Sink$(co re.String)]]})
299 }); 299 });
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
332 withCallback: [ByteConversionSink, [dart.functionType(dart.void, [core.Lis t$(core.int)])]], 332 withCallback: [ByteConversionSink, [dart.functionType(dart.void, [core.Lis t$(core.int)])]],
333 from: [ByteConversionSink, [core.Sink$(core.List$(core.int))]] 333 from: [ByteConversionSink, [core.Sink$(core.List$(core.int))]]
334 }) 334 })
335 }); 335 });
336 class ByteConversionSinkBase extends ByteConversionSink { 336 class ByteConversionSinkBase extends ByteConversionSink {
337 ByteConversionSinkBase() { 337 ByteConversionSinkBase() {
338 super.ByteConversionSink(); 338 super.ByteConversionSink();
339 } 339 }
340 addSlice(chunk, start, end, isLast) { 340 addSlice(chunk, start, end, isLast) {
341 this.add(chunk[dartx.sublist](start, end)); 341 this.add(chunk[dartx.sublist](start, end));
342 if (isLast) 342 if (dart.notNull(isLast))
343 this.close(); 343 this.close();
344 } 344 }
345 } 345 }
346 dart.setSignature(ByteConversionSinkBase, { 346 dart.setSignature(ByteConversionSinkBase, {
347 methods: () => ({addSlice: [dart.void, [core.List$(core.int), core.int, core .int, core.bool]]}) 347 methods: () => ({addSlice: [dart.void, [core.List$(core.int), core.int, core .int, core.bool]]})
348 }); 348 });
349 let _utf8Sink = Symbol('_utf8Sink'); 349 let _utf8Sink = Symbol('_utf8Sink');
350 class _ErrorHandlingAsciiDecoderSink extends ByteConversionSinkBase { 350 class _ErrorHandlingAsciiDecoderSink extends ByteConversionSinkBase {
351 _ErrorHandlingAsciiDecoderSink(utf8Sink) { 351 _ErrorHandlingAsciiDecoderSink(utf8Sink) {
352 this[_utf8Sink] = utf8Sink; 352 this[_utf8Sink] = utf8Sink;
353 } 353 }
354 close() { 354 close() {
355 this[_utf8Sink].close(); 355 this[_utf8Sink].close();
356 } 356 }
357 add(source) { 357 add(source) {
358 this.addSlice(source, 0, source.length, false); 358 this.addSlice(source, 0, source.length, false);
359 } 359 }
360 addSlice(source, start, end, isLast) { 360 addSlice(source, start, end, isLast) {
361 core.RangeError.checkValidRange(start, end, source.length); 361 core.RangeError.checkValidRange(start, end, source.length);
362 for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull( i) + 1) { 362 for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull( i) + 1) {
363 if ((dart.notNull(source[dartx.get](i)) & ~dart.notNull(_ASCII_MASK)) != 0) { 363 if ((dart.notNull(source[dartx.get](i)) & ~dart.notNull(_ASCII_MASK)) != 0) {
364 if (dart.notNull(i) > dart.notNull(start)) 364 if (dart.notNull(i) > dart.notNull(start))
365 this[_utf8Sink].addSlice(source, start, i, false); 365 this[_utf8Sink].addSlice(source, start, i, false);
366 this[_utf8Sink].add(dart.const(dart.list([239, 191, 189], core.int))); 366 this[_utf8Sink].add(dart.const(dart.list([239, 191, 189], core.int)));
367 start = dart.notNull(i) + 1; 367 start = dart.notNull(i) + 1;
368 } 368 }
369 } 369 }
370 if (dart.notNull(start) < dart.notNull(end)) { 370 if (dart.notNull(start) < dart.notNull(end)) {
371 this[_utf8Sink].addSlice(source, start, end, isLast); 371 this[_utf8Sink].addSlice(source, start, end, isLast);
372 } else if (isLast) { 372 } else if (dart.notNull(isLast)) {
373 this.close(); 373 this.close();
374 } 374 }
375 } 375 }
376 } 376 }
377 dart.setSignature(_ErrorHandlingAsciiDecoderSink, { 377 dart.setSignature(_ErrorHandlingAsciiDecoderSink, {
378 constructors: () => ({_ErrorHandlingAsciiDecoderSink: [_ErrorHandlingAsciiDe coderSink, [ByteConversionSink]]}), 378 constructors: () => ({_ErrorHandlingAsciiDecoderSink: [_ErrorHandlingAsciiDe coderSink, [ByteConversionSink]]}),
379 methods: () => ({ 379 methods: () => ({
380 close: [dart.void, []], 380 close: [dart.void, []],
381 add: [dart.void, [core.List$(core.int)]] 381 add: [dart.void, [core.List$(core.int)]]
382 }) 382 })
(...skipping 15 matching lines...) Expand all
398 } 398 }
399 addSlice(source, start, end, isLast) { 399 addSlice(source, start, end, isLast) {
400 let length = source.length; 400 let length = source.length;
401 core.RangeError.checkValidRange(start, end, length); 401 core.RangeError.checkValidRange(start, end, length);
402 if (dart.notNull(start) < dart.notNull(end)) { 402 if (dart.notNull(start) < dart.notNull(end)) {
403 if (start != 0 || end != length) { 403 if (start != 0 || end != length) {
404 source = source[dartx.sublist](start, end); 404 source = source[dartx.sublist](start, end);
405 } 405 }
406 this.add(source); 406 this.add(source);
407 } 407 }
408 if (isLast) 408 if (dart.notNull(isLast))
409 this.close(); 409 this.close();
410 } 410 }
411 } 411 }
412 dart.setSignature(_SimpleAsciiDecoderSink, { 412 dart.setSignature(_SimpleAsciiDecoderSink, {
413 constructors: () => ({_SimpleAsciiDecoderSink: [_SimpleAsciiDecoderSink, [co re.Sink]]}), 413 constructors: () => ({_SimpleAsciiDecoderSink: [_SimpleAsciiDecoderSink, [co re.Sink]]}),
414 methods: () => ({ 414 methods: () => ({
415 close: [dart.void, []], 415 close: [dart.void, []],
416 add: [dart.void, [core.List$(core.int)]] 416 add: [dart.void, [core.List$(core.int)]]
417 }) 417 })
418 }); 418 });
(...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after
686 replace = '&amp;'; 686 replace = '&amp;';
687 break; 687 break;
688 } 688 }
689 case ' ': 689 case ' ':
690 { 690 {
691 replace = '&nbsp;'; 691 replace = '&nbsp;';
692 break; 692 break;
693 } 693 }
694 case '"': 694 case '"':
695 { 695 {
696 if (this.mode.escapeQuot) 696 if (dart.notNull(this.mode.escapeQuot))
697 replace = '&quot;'; 697 replace = '&quot;';
698 break; 698 break;
699 } 699 }
700 case "'": 700 case "'":
701 { 701 {
702 if (this.mode.escapeApos) 702 if (dart.notNull(this.mode.escapeApos))
703 replace = '&#x27;'; 703 replace = '&#x27;';
704 break; 704 break;
705 } 705 }
706 case '<': 706 case '<':
707 { 707 {
708 if (this.mode.escapeLtGt) 708 if (dart.notNull(this.mode.escapeLtGt))
709 replace = '&lt;'; 709 replace = '&lt;';
710 break; 710 break;
711 } 711 }
712 case '>': 712 case '>':
713 { 713 {
714 if (this.mode.escapeLtGt) 714 if (dart.notNull(this.mode.escapeLtGt))
715 replace = '&gt;'; 715 replace = '&gt;';
716 break; 716 break;
717 } 717 }
718 case '/': 718 case '/':
719 { 719 {
720 if (this.mode.escapeSlash) 720 if (dart.notNull(this.mode.escapeSlash))
721 replace = '&#x2F;'; 721 replace = '&#x2F;';
722 break; 722 break;
723 } 723 }
724 } 724 }
725 if (replace != null) { 725 if (replace != null) {
726 if (result == null) 726 if (result == null)
727 result = new core.StringBuffer(text[dartx.substring](start, i)); 727 result = new core.StringBuffer(text[dartx.substring](start, i));
728 result.write(replace); 728 result.write(replace);
729 } else if (result != null) { 729 } else if (result != null) {
730 result.write(ch); 730 result.write(ch);
(...skipping 24 matching lines...) Expand all
755 _HtmlEscapeSink(escape, sink) { 755 _HtmlEscapeSink(escape, sink) {
756 this[_escape] = escape; 756 this[_escape] = escape;
757 this[_sink] = sink; 757 this[_sink] = sink;
758 } 758 }
759 addSlice(chunk, start, end, isLast) { 759 addSlice(chunk, start, end, isLast) {
760 let val = this[_escape][_convert](chunk, start, end); 760 let val = this[_escape][_convert](chunk, start, end);
761 if (val == null) { 761 if (val == null) {
762 this[_sink].addSlice(chunk, start, end, isLast); 762 this[_sink].addSlice(chunk, start, end, isLast);
763 } else { 763 } else {
764 this[_sink].add(val); 764 this[_sink].add(val);
765 if (isLast) 765 if (dart.notNull(isLast))
766 this[_sink].close(); 766 this[_sink].close();
767 } 767 }
768 } 768 }
769 close() { 769 close() {
770 return this[_sink].close(); 770 return this[_sink].close();
771 } 771 }
772 } 772 }
773 dart.setSignature(_HtmlEscapeSink, { 773 dart.setSignature(_HtmlEscapeSink, {
774 constructors: () => ({_HtmlEscapeSink: [_HtmlEscapeSink, [HtmlEscape, String ConversionSink]]}), 774 constructors: () => ({_HtmlEscapeSink: [_HtmlEscapeSink, [HtmlEscape, String ConversionSink]]}),
775 methods: () => ({ 775 methods: () => ({
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
920 if (bufferSize === void 0) 920 if (bufferSize === void 0)
921 bufferSize = JsonUtf8Encoder.DEFAULT_BUFFER_SIZE; 921 bufferSize = JsonUtf8Encoder.DEFAULT_BUFFER_SIZE;
922 this[_indent] = JsonUtf8Encoder._utf8Encode(indent); 922 this[_indent] = JsonUtf8Encoder._utf8Encode(indent);
923 this[_toEncodable$] = toEncodable; 923 this[_toEncodable$] = toEncodable;
924 this[_bufferSize] = bufferSize; 924 this[_bufferSize] = bufferSize;
925 super.Converter(); 925 super.Converter();
926 } 926 }
927 static _utf8Encode(string) { 927 static _utf8Encode(string) {
928 if (string == null) 928 if (string == null)
929 return null; 929 return null;
930 if (string[dartx.isEmpty]) 930 if (dart.notNull(string[dartx.isEmpty]))
931 return typed_data.Uint8List.new(0); 931 return typed_data.Uint8List.new(0);
932 checkAscii: { 932 checkAscii: {
933 for (let i = 0; dart.notNull(i) < dart.notNull(string.length); i = dart. notNull(i) + 1) { 933 for (let i = 0; dart.notNull(i) < dart.notNull(string.length); i = dart. notNull(i) + 1) {
934 if (dart.notNull(string[dartx.codeUnitAt](i)) >= 128) 934 if (dart.notNull(string[dartx.codeUnitAt](i)) >= 128)
935 break checkAscii; 935 break checkAscii;
936 } 936 }
937 return string[dartx.codeUnits]; 937 return string[dartx.codeUnits];
938 } 938 }
939 return UTF8.encode(string); 939 return UTF8.encode(string);
940 } 940 }
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
995 let _isDone = Symbol('_isDone'); 995 let _isDone = Symbol('_isDone');
996 class _JsonEncoderSink extends ChunkedConversionSink$(core.Object) { 996 class _JsonEncoderSink extends ChunkedConversionSink$(core.Object) {
997 _JsonEncoderSink(sink, toEncodable, indent) { 997 _JsonEncoderSink(sink, toEncodable, indent) {
998 this[_sink] = sink; 998 this[_sink] = sink;
999 this[_toEncodable$] = toEncodable; 999 this[_toEncodable$] = toEncodable;
1000 this[_indent] = indent; 1000 this[_indent] = indent;
1001 this[_isDone] = false; 1001 this[_isDone] = false;
1002 super.ChunkedConversionSink(); 1002 super.ChunkedConversionSink();
1003 } 1003 }
1004 add(o) { 1004 add(o) {
1005 if (this[_isDone]) { 1005 if (dart.notNull(this[_isDone])) {
1006 throw new core.StateError("Only one call to add allowed"); 1006 throw new core.StateError("Only one call to add allowed");
1007 } 1007 }
1008 this[_isDone] = true; 1008 this[_isDone] = true;
1009 let stringSink = this[_sink].asStringSink(); 1009 let stringSink = this[_sink].asStringSink();
1010 _JsonStringStringifier.printOn(o, stringSink, dart.as(this[_toEncodable$], dart.functionType(core.Object, [dart.bottom])), this[_indent]); 1010 _JsonStringStringifier.printOn(o, stringSink, dart.as(this[_toEncodable$], dart.functionType(core.Object, [dart.bottom])), this[_indent]);
1011 stringSink.close(); 1011 stringSink.close();
1012 } 1012 }
1013 close() {} 1013 close() {}
1014 } 1014 }
1015 dart.setSignature(_JsonEncoderSink, { 1015 dart.setSignature(_JsonEncoderSink, {
(...skipping 10 matching lines...) Expand all
1026 this[_toEncodable$] = toEncodable; 1026 this[_toEncodable$] = toEncodable;
1027 this[_indent] = indent; 1027 this[_indent] = indent;
1028 this[_bufferSize] = bufferSize; 1028 this[_bufferSize] = bufferSize;
1029 this[_isDone] = false; 1029 this[_isDone] = false;
1030 super.ChunkedConversionSink(); 1030 super.ChunkedConversionSink();
1031 } 1031 }
1032 [_addChunk](chunk, start, end) { 1032 [_addChunk](chunk, start, end) {
1033 this[_sink].addSlice(chunk, start, end, false); 1033 this[_sink].addSlice(chunk, start, end, false);
1034 } 1034 }
1035 add(object) { 1035 add(object) {
1036 if (this[_isDone]) { 1036 if (dart.notNull(this[_isDone])) {
1037 throw new core.StateError("Only one call to add allowed"); 1037 throw new core.StateError("Only one call to add allowed");
1038 } 1038 }
1039 this[_isDone] = true; 1039 this[_isDone] = true;
1040 _JsonUtf8Stringifier.stringify(object, this[_indent], dart.as(this[_toEnco dable$], dart.functionType(core.Object, [core.Object])), this[_bufferSize], dart .bind(this, _addChunk)); 1040 _JsonUtf8Stringifier.stringify(object, this[_indent], dart.as(this[_toEnco dable$], dart.functionType(core.Object, [core.Object])), this[_bufferSize], dart .bind(this, _addChunk));
1041 this[_sink].close(); 1041 this[_sink].close();
1042 } 1042 }
1043 close() { 1043 close() {
1044 if (!dart.notNull(this[_isDone])) { 1044 if (!dart.notNull(this[_isDone])) {
1045 this[_isDone] = true; 1045 this[_isDone] = true;
1046 this[_sink].close(); 1046 this[_sink].close();
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
1169 } 1169 }
1170 } 1170 }
1171 if (offset == 0) { 1171 if (offset == 0) {
1172 this.writeString(s); 1172 this.writeString(s);
1173 } else if (dart.notNull(offset) < dart.notNull(length)) { 1173 } else if (dart.notNull(offset) < dart.notNull(length)) {
1174 this.writeStringSlice(s, offset, length); 1174 this.writeStringSlice(s, offset, length);
1175 } 1175 }
1176 } 1176 }
1177 [_checkCycle](object) { 1177 [_checkCycle](object) {
1178 for (let i = 0; dart.notNull(i) < dart.notNull(this[_seen].length); i = da rt.notNull(i) + 1) { 1178 for (let i = 0; dart.notNull(i) < dart.notNull(this[_seen].length); i = da rt.notNull(i) + 1) {
1179 if (core.identical(object, this[_seen][dartx.get](i))) { 1179 if (dart.notNull(core.identical(object, this[_seen][dartx.get](i)))) {
1180 throw new JsonCyclicError(object); 1180 throw new JsonCyclicError(object);
1181 } 1181 }
1182 } 1182 }
1183 this[_seen][dartx.add](object); 1183 this[_seen][dartx.add](object);
1184 } 1184 }
1185 [_removeSeen](object) { 1185 [_removeSeen](object) {
1186 dart.assert(!dart.notNull(this[_seen][dartx.isEmpty])); 1186 dart.assert(!dart.notNull(this[_seen][dartx.isEmpty]));
1187 dart.assert(core.identical(this[_seen][dartx.last], object)); 1187 dart.assert(core.identical(this[_seen][dartx.last], object));
1188 this[_seen][dartx.removeLast](); 1188 this[_seen][dartx.removeLast]();
1189 } 1189 }
1190 writeObject(object) { 1190 writeObject(object) {
1191 if (this.writeJsonValue(object)) 1191 if (dart.notNull(this.writeJsonValue(object)))
1192 return; 1192 return;
1193 this[_checkCycle](object); 1193 this[_checkCycle](object);
1194 try { 1194 try {
1195 let customJson = dart.dcall(this[_toEncodable$], object); 1195 let customJson = dart.dcall(this[_toEncodable$], object);
1196 if (!dart.notNull(this.writeJsonValue(customJson))) { 1196 if (!dart.notNull(this.writeJsonValue(customJson))) {
1197 throw new JsonUnsupportedObjectError(object); 1197 throw new JsonUnsupportedObjectError(object);
1198 } 1198 }
1199 this[_removeSeen](object); 1199 this[_removeSeen](object);
1200 } catch (e) { 1200 } catch (e) {
1201 throw new JsonUnsupportedObjectError(object, {cause: e}); 1201 throw new JsonUnsupportedObjectError(object, {cause: e});
1202 } 1202 }
1203 1203
1204 } 1204 }
1205 writeJsonValue(object) { 1205 writeJsonValue(object) {
1206 if (dart.is(object, core.num)) { 1206 if (dart.is(object, core.num)) {
1207 if (dart.dsend(dart.dload(object, 'isFinite'), '!')) 1207 if (!dart.notNull(dart.as(dart.dload(object, 'isFinite'), core.bool)))
1208 return false; 1208 return false;
1209 this.writeNumber(dart.as(object, core.num)); 1209 this.writeNumber(dart.as(object, core.num));
1210 return true; 1210 return true;
1211 } else if (core.identical(object, true)) { 1211 } else if (dart.notNull(core.identical(object, true))) {
1212 this.writeString('true'); 1212 this.writeString('true');
1213 return true; 1213 return true;
1214 } else if (core.identical(object, false)) { 1214 } else if (dart.notNull(core.identical(object, false))) {
1215 this.writeString('false'); 1215 this.writeString('false');
1216 return true; 1216 return true;
1217 } else if (object == null) { 1217 } else if (object == null) {
1218 this.writeString('null'); 1218 this.writeString('null');
1219 return true; 1219 return true;
1220 } else if (typeof object == 'string') { 1220 } else if (typeof object == 'string') {
1221 this.writeString('"'); 1221 this.writeString('"');
1222 this.writeStringContent(dart.as(object, core.String)); 1222 this.writeStringContent(dart.as(object, core.String));
1223 this.writeString('"'); 1223 this.writeString('"');
1224 return true; 1224 return true;
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
1287 _JsonStringifier.CHAR_n = 110; 1287 _JsonStringifier.CHAR_n = 110;
1288 _JsonStringifier.CHAR_r = 114; 1288 _JsonStringifier.CHAR_r = 114;
1289 _JsonStringifier.CHAR_t = 116; 1289 _JsonStringifier.CHAR_t = 116;
1290 _JsonStringifier.CHAR_u = 117; 1290 _JsonStringifier.CHAR_u = 117;
1291 let _indentLevel = Symbol('_indentLevel'); 1291 let _indentLevel = Symbol('_indentLevel');
1292 class _JsonPrettyPrintMixin extends core.Object { 1292 class _JsonPrettyPrintMixin extends core.Object {
1293 _JsonPrettyPrintMixin() { 1293 _JsonPrettyPrintMixin() {
1294 this[_indentLevel] = 0; 1294 this[_indentLevel] = 0;
1295 } 1295 }
1296 writeList(list) { 1296 writeList(list) {
1297 if (list[dartx.isEmpty]) { 1297 if (dart.notNull(list[dartx.isEmpty])) {
1298 this.writeString('[]'); 1298 this.writeString('[]');
1299 } else { 1299 } else {
1300 this.writeString('[\n'); 1300 this.writeString('[\n');
1301 this[_indentLevel] = dart.notNull(this[_indentLevel]) + 1; 1301 this[_indentLevel] = dart.notNull(this[_indentLevel]) + 1;
1302 this.writeIndentation(this[_indentLevel]); 1302 this.writeIndentation(this[_indentLevel]);
1303 this.writeObject(list[dartx.get](0)); 1303 this.writeObject(list[dartx.get](0));
1304 for (let i = 1; dart.notNull(i) < dart.notNull(list.length); i = dart.no tNull(i) + 1) { 1304 for (let i = 1; dart.notNull(i) < dart.notNull(list.length); i = dart.no tNull(i) + 1) {
1305 this.writeString(',\n'); 1305 this.writeString(',\n');
1306 this.writeIndentation(this[_indentLevel]); 1306 this.writeIndentation(this[_indentLevel]);
1307 this.writeObject(list[dartx.get](i)); 1307 this.writeObject(list[dartx.get](i));
1308 } 1308 }
1309 this.writeString('\n'); 1309 this.writeString('\n');
1310 this[_indentLevel] = dart.notNull(this[_indentLevel]) - 1; 1310 this[_indentLevel] = dart.notNull(this[_indentLevel]) - 1;
1311 this.writeIndentation(this[_indentLevel]); 1311 this.writeIndentation(this[_indentLevel]);
1312 this.writeString(']'); 1312 this.writeString(']');
1313 } 1313 }
1314 } 1314 }
1315 writeMap(map) { 1315 writeMap(map) {
1316 if (map.isEmpty) { 1316 if (dart.notNull(map.isEmpty)) {
1317 this.writeString('{}'); 1317 this.writeString('{}');
1318 } else { 1318 } else {
1319 this.writeString('{\n'); 1319 this.writeString('{\n');
1320 this[_indentLevel] = dart.notNull(this[_indentLevel]) + 1; 1320 this[_indentLevel] = dart.notNull(this[_indentLevel]) + 1;
1321 let first = true; 1321 let first = true;
1322 map.forEach(dart.fn((key, value) => { 1322 map.forEach(dart.fn((key, value) => {
1323 if (!dart.notNull(first)) { 1323 if (!dart.notNull(first)) {
1324 this.writeString(",\n"); 1324 this.writeString(",\n");
1325 } 1325 }
1326 this.writeIndentation(this[_indentLevel]); 1326 this.writeIndentation(this[_indentLevel]);
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after
1562 this[_allowInvalid] = allowInvalid; 1562 this[_allowInvalid] = allowInvalid;
1563 super.Encoding(); 1563 super.Encoding();
1564 } 1564 }
1565 get name() { 1565 get name() {
1566 return "iso-8859-1"; 1566 return "iso-8859-1";
1567 } 1567 }
1568 decode(bytes, opts) { 1568 decode(bytes, opts) {
1569 let allowInvalid = opts && 'allowInvalid' in opts ? opts.allowInvalid : nu ll; 1569 let allowInvalid = opts && 'allowInvalid' in opts ? opts.allowInvalid : nu ll;
1570 if (allowInvalid == null) 1570 if (allowInvalid == null)
1571 allowInvalid = this[_allowInvalid]; 1571 allowInvalid = this[_allowInvalid];
1572 if (allowInvalid) { 1572 if (dart.notNull(allowInvalid)) {
1573 return dart.const(new Latin1Decoder({allowInvalid: true})).convert(bytes ); 1573 return dart.const(new Latin1Decoder({allowInvalid: true})).convert(bytes );
1574 } else { 1574 } else {
1575 return dart.const(new Latin1Decoder({allowInvalid: false})).convert(byte s); 1575 return dart.const(new Latin1Decoder({allowInvalid: false})).convert(byte s);
1576 } 1576 }
1577 } 1577 }
1578 get encoder() { 1578 get encoder() {
1579 return dart.const(new Latin1Encoder()); 1579 return dart.const(new Latin1Encoder());
1580 } 1580 }
1581 get decoder() { 1581 get decoder() {
1582 return this[_allowInvalid] ? dart.const(new Latin1Decoder({allowInvalid: t rue})) : dart.const(new Latin1Decoder({allowInvalid: false})); 1582 return dart.notNull(this[_allowInvalid]) ? dart.const(new Latin1Decoder({a llowInvalid: true})) : dart.const(new Latin1Decoder({allowInvalid: false}));
1583 } 1583 }
1584 } 1584 }
1585 dart.setSignature(Latin1Codec, { 1585 dart.setSignature(Latin1Codec, {
1586 constructors: () => ({Latin1Codec: [Latin1Codec, [], {allowInvalid: core.boo l}]}), 1586 constructors: () => ({Latin1Codec: [Latin1Codec, [], {allowInvalid: core.boo l}]}),
1587 methods: () => ({decode: [core.String, [core.List$(core.int)], {allowInvalid : core.bool}]}) 1587 methods: () => ({decode: [core.String, [core.List$(core.int)], {allowInvalid : core.bool}]})
1588 }); 1588 });
1589 let LATIN1 = dart.const(new Latin1Codec()); 1589 let LATIN1 = dart.const(new Latin1Codec());
1590 let _LATIN1_MASK = 255; 1590 let _LATIN1_MASK = 255;
1591 class Latin1Encoder extends _UnicodeSubsetEncoder { 1591 class Latin1Encoder extends _UnicodeSubsetEncoder {
1592 Latin1Encoder() { 1592 Latin1Encoder() {
(...skipping 30 matching lines...) Expand all
1623 this[_sink] = sink; 1623 this[_sink] = sink;
1624 } 1624 }
1625 close() { 1625 close() {
1626 this[_sink].close(); 1626 this[_sink].close();
1627 } 1627 }
1628 add(source) { 1628 add(source) {
1629 this.addSlice(source, 0, source.length, false); 1629 this.addSlice(source, 0, source.length, false);
1630 } 1630 }
1631 [_addSliceToSink](source, start, end, isLast) { 1631 [_addSliceToSink](source, start, end, isLast) {
1632 this[_sink].add(core.String.fromCharCodes(source, start, end)); 1632 this[_sink].add(core.String.fromCharCodes(source, start, end));
1633 if (isLast) 1633 if (dart.notNull(isLast))
1634 this.close(); 1634 this.close();
1635 } 1635 }
1636 addSlice(source, start, end, isLast) { 1636 addSlice(source, start, end, isLast) {
1637 core.RangeError.checkValidRange(start, end, source.length); 1637 core.RangeError.checkValidRange(start, end, source.length);
1638 for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull( i) + 1) { 1638 for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull( i) + 1) {
1639 let char = source[dartx.get](i); 1639 let char = source[dartx.get](i);
1640 if (dart.notNull(char) > dart.notNull(_LATIN1_MASK) || dart.notNull(char ) < 0) { 1640 if (dart.notNull(char) > dart.notNull(_LATIN1_MASK) || dart.notNull(char ) < 0) {
1641 throw new core.FormatException("Source contains non-Latin-1 characters ."); 1641 throw new core.FormatException("Source contains non-Latin-1 characters .");
1642 } 1642 }
1643 } 1643 }
1644 if (dart.notNull(start) < dart.notNull(end)) { 1644 if (dart.notNull(start) < dart.notNull(end)) {
1645 this[_addSliceToSink](source, start, end, isLast); 1645 this[_addSliceToSink](source, start, end, isLast);
1646 } 1646 }
1647 if (isLast) { 1647 if (dart.notNull(isLast)) {
1648 this.close(); 1648 this.close();
1649 } 1649 }
1650 } 1650 }
1651 } 1651 }
1652 dart.setSignature(_Latin1DecoderSink, { 1652 dart.setSignature(_Latin1DecoderSink, {
1653 constructors: () => ({_Latin1DecoderSink: [_Latin1DecoderSink, [StringConver sionSink]]}), 1653 constructors: () => ({_Latin1DecoderSink: [_Latin1DecoderSink, [StringConver sionSink]]}),
1654 methods: () => ({ 1654 methods: () => ({
1655 close: [dart.void, []], 1655 close: [dart.void, []],
1656 add: [dart.void, [core.List$(core.int)]], 1656 add: [dart.void, [core.List$(core.int)]],
1657 [_addSliceToSink]: [dart.void, [core.List$(core.int), core.int, core.int, core.bool]] 1657 [_addSliceToSink]: [dart.void, [core.List$(core.int), core.int, core.int, core.bool]]
(...skipping 10 matching lines...) Expand all
1668 if (dart.notNull(char) > dart.notNull(_LATIN1_MASK) || dart.notNull(char ) < 0) { 1668 if (dart.notNull(char) > dart.notNull(_LATIN1_MASK) || dart.notNull(char ) < 0) {
1669 if (dart.notNull(i) > dart.notNull(start)) 1669 if (dart.notNull(i) > dart.notNull(start))
1670 this[_addSliceToSink](source, start, i, false); 1670 this[_addSliceToSink](source, start, i, false);
1671 this[_addSliceToSink](dart.const(dart.list([65533], core.int)), 0, 1, false); 1671 this[_addSliceToSink](dart.const(dart.list([65533], core.int)), 0, 1, false);
1672 start = dart.notNull(i) + 1; 1672 start = dart.notNull(i) + 1;
1673 } 1673 }
1674 } 1674 }
1675 if (dart.notNull(start) < dart.notNull(end)) { 1675 if (dart.notNull(start) < dart.notNull(end)) {
1676 this[_addSliceToSink](source, start, end, isLast); 1676 this[_addSliceToSink](source, start, end, isLast);
1677 } 1677 }
1678 if (isLast) { 1678 if (dart.notNull(isLast)) {
1679 this.close(); 1679 this.close();
1680 } 1680 }
1681 } 1681 }
1682 } 1682 }
1683 dart.setSignature(_Latin1AllowInvalidDecoderSink, { 1683 dart.setSignature(_Latin1AllowInvalidDecoderSink, {
1684 constructors: () => ({_Latin1AllowInvalidDecoderSink: [_Latin1AllowInvalidDe coderSink, [StringConversionSink]]}) 1684 constructors: () => ({_Latin1AllowInvalidDecoderSink: [_Latin1AllowInvalidDe coderSink, [StringConversionSink]]})
1685 }); 1685 });
1686 class LineSplitter extends Converter$(core.String, core.List$(core.String)) { 1686 class LineSplitter extends Converter$(core.String, core.List$(core.String)) {
1687 LineSplitter() { 1687 LineSplitter() {
1688 super.Converter(); 1688 super.Converter();
(...skipping 24 matching lines...) Expand all
1713 this[_carry] = null; 1713 this[_carry] = null;
1714 } 1714 }
1715 addSlice(chunk, start, end, isLast) { 1715 addSlice(chunk, start, end, isLast) {
1716 if (this[_carry] != null) { 1716 if (this[_carry] != null) {
1717 chunk = dart.notNull(this[_carry]) + dart.notNull(chunk[dartx.substring] (start, end)); 1717 chunk = dart.notNull(this[_carry]) + dart.notNull(chunk[dartx.substring] (start, end));
1718 start = 0; 1718 start = 0;
1719 end = chunk.length; 1719 end = chunk.length;
1720 this[_carry] = null; 1720 this[_carry] = null;
1721 } 1721 }
1722 this[_carry] = _LineSplitterSink._addSlice(chunk, start, end, isLast, dart .bind(this[_sink], 'add')); 1722 this[_carry] = _LineSplitterSink._addSlice(chunk, start, end, isLast, dart .bind(this[_sink], 'add'));
1723 if (isLast) 1723 if (dart.notNull(isLast))
1724 this[_sink].close(); 1724 this[_sink].close();
1725 } 1725 }
1726 close() { 1726 close() {
1727 this.addSlice('', 0, 0, true); 1727 this.addSlice('', 0, 0, true);
1728 } 1728 }
1729 static _addSlice(chunk, start, end, isLast, adder) { 1729 static _addSlice(chunk, start, end, isLast, adder) {
1730 let pos = start; 1730 let pos = start;
1731 while (dart.notNull(pos) < dart.notNull(end)) { 1731 while (dart.notNull(pos) < dart.notNull(end)) {
1732 let skip = 0; 1732 let skip = 0;
1733 let char = chunk[dartx.codeUnitAt](pos); 1733 let char = chunk[dartx.codeUnitAt](pos);
(...skipping 11 matching lines...) Expand all
1745 } 1745 }
1746 if (dart.notNull(skip) > 0) { 1746 if (dart.notNull(skip) > 0) {
1747 adder(chunk[dartx.substring](start, pos)); 1747 adder(chunk[dartx.substring](start, pos));
1748 start = pos = dart.notNull(pos) + dart.notNull(skip); 1748 start = pos = dart.notNull(pos) + dart.notNull(skip);
1749 } else { 1749 } else {
1750 pos = dart.notNull(pos) + 1; 1750 pos = dart.notNull(pos) + 1;
1751 } 1751 }
1752 } 1752 }
1753 if (pos != start) { 1753 if (pos != start) {
1754 let carry = chunk[dartx.substring](start, pos); 1754 let carry = chunk[dartx.substring](start, pos);
1755 if (isLast) { 1755 if (dart.notNull(isLast)) {
1756 adder(carry); 1756 adder(carry);
1757 } else { 1757 } else {
1758 return carry; 1758 return carry;
1759 } 1759 }
1760 } 1760 }
1761 return null; 1761 return null;
1762 } 1762 }
1763 } 1763 }
1764 dart.setSignature(_LineSplitterSink, { 1764 dart.setSignature(_LineSplitterSink, {
1765 constructors: () => ({_LineSplitterSink: [_LineSplitterSink, [StringConversi onSink]]}), 1765 constructors: () => ({_LineSplitterSink: [_LineSplitterSink, [StringConversi onSink]]}),
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
1839 writeAll: [dart.void, [core.Iterable], [core.String]] 1839 writeAll: [dart.void, [core.Iterable], [core.String]]
1840 }) 1840 })
1841 }); 1841 });
1842 let _flush = Symbol('_flush'); 1842 let _flush = Symbol('_flush');
1843 class _StringConversionSinkAsStringSinkAdapter extends core.Object { 1843 class _StringConversionSinkAsStringSinkAdapter extends core.Object {
1844 _StringConversionSinkAsStringSinkAdapter(chunkedSink) { 1844 _StringConversionSinkAsStringSinkAdapter(chunkedSink) {
1845 this[_chunkedSink] = chunkedSink; 1845 this[_chunkedSink] = chunkedSink;
1846 this[_buffer] = new core.StringBuffer(); 1846 this[_buffer] = new core.StringBuffer();
1847 } 1847 }
1848 close() { 1848 close() {
1849 if (this[_buffer].isNotEmpty) 1849 if (dart.notNull(this[_buffer].isNotEmpty))
1850 this[_flush](); 1850 this[_flush]();
1851 this[_chunkedSink].close(); 1851 this[_chunkedSink].close();
1852 } 1852 }
1853 writeCharCode(charCode) { 1853 writeCharCode(charCode) {
1854 this[_buffer].writeCharCode(charCode); 1854 this[_buffer].writeCharCode(charCode);
1855 if (dart.notNull(this[_buffer].length) > dart.notNull(_StringConversionSin kAsStringSinkAdapter._MIN_STRING_SIZE)) 1855 if (dart.notNull(this[_buffer].length) > dart.notNull(_StringConversionSin kAsStringSinkAdapter._MIN_STRING_SIZE))
1856 this[_flush](); 1856 this[_flush]();
1857 } 1857 }
1858 write(o) { 1858 write(o) {
1859 if (this[_buffer].isNotEmpty) 1859 if (dart.notNull(this[_buffer].isNotEmpty))
1860 this[_flush](); 1860 this[_flush]();
1861 let str = dart.toString(o); 1861 let str = dart.toString(o);
1862 this[_chunkedSink].add(dart.toString(o)); 1862 this[_chunkedSink].add(dart.toString(o));
1863 } 1863 }
1864 writeln(o) { 1864 writeln(o) {
1865 if (o === void 0) 1865 if (o === void 0)
1866 o = ""; 1866 o = "";
1867 this[_buffer].writeln(o); 1867 this[_buffer].writeln(o);
1868 if (dart.notNull(this[_buffer].length) > dart.notNull(_StringConversionSin kAsStringSinkAdapter._MIN_STRING_SIZE)) 1868 if (dart.notNull(this[_buffer].length) > dart.notNull(_StringConversionSin kAsStringSinkAdapter._MIN_STRING_SIZE))
1869 this[_flush](); 1869 this[_flush]();
1870 } 1870 }
1871 writeAll(objects, separator) { 1871 writeAll(objects, separator) {
1872 if (separator === void 0) 1872 if (separator === void 0)
1873 separator = ""; 1873 separator = "";
1874 if (this[_buffer].isNotEmpty) 1874 if (dart.notNull(this[_buffer].isNotEmpty))
1875 this[_flush](); 1875 this[_flush]();
1876 let iterator = objects[dartx.iterator]; 1876 let iterator = objects[dartx.iterator];
1877 if (!dart.notNull(iterator.moveNext())) 1877 if (!dart.notNull(iterator.moveNext()))
1878 return; 1878 return;
1879 if (separator[dartx.isEmpty]) { 1879 if (dart.notNull(separator[dartx.isEmpty])) {
1880 do { 1880 do {
1881 this[_chunkedSink].add(dart.toString(iterator.current)); 1881 this[_chunkedSink].add(dart.toString(iterator.current));
1882 } while (iterator.moveNext()); 1882 } while (dart.notNull(iterator.moveNext()));
1883 } else { 1883 } else {
1884 this[_chunkedSink].add(dart.toString(iterator.current)); 1884 this[_chunkedSink].add(dart.toString(iterator.current));
1885 while (iterator.moveNext()) { 1885 while (dart.notNull(iterator.moveNext())) {
1886 this.write(separator); 1886 this.write(separator);
1887 this[_chunkedSink].add(dart.toString(iterator.current)); 1887 this[_chunkedSink].add(dart.toString(iterator.current));
1888 } 1888 }
1889 } 1889 }
1890 } 1890 }
1891 [_flush]() { 1891 [_flush]() {
1892 let accumulated = dart.toString(this[_buffer]); 1892 let accumulated = dart.toString(this[_buffer]);
1893 this[_buffer].clear(); 1893 this[_buffer].clear();
1894 this[_chunkedSink].add(accumulated); 1894 this[_chunkedSink].add(accumulated);
1895 } 1895 }
(...skipping 18 matching lines...) Expand all
1914 } 1914 }
1915 close() {} 1915 close() {}
1916 addSlice(str, start, end, isLast) { 1916 addSlice(str, start, end, isLast) {
1917 if (start != 0 || end != str.length) { 1917 if (start != 0 || end != str.length) {
1918 for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNul l(i) + 1) { 1918 for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNul l(i) + 1) {
1919 this[_stringSink].writeCharCode(str[dartx.codeUnitAt](i)); 1919 this[_stringSink].writeCharCode(str[dartx.codeUnitAt](i));
1920 } 1920 }
1921 } else { 1921 } else {
1922 this[_stringSink].write(str); 1922 this[_stringSink].write(str);
1923 } 1923 }
1924 if (isLast) 1924 if (dart.notNull(isLast))
1925 this.close(); 1925 this.close();
1926 } 1926 }
1927 add(str) { 1927 add(str) {
1928 return this[_stringSink].write(str); 1928 return this[_stringSink].write(str);
1929 } 1929 }
1930 asUtf8Sink(allowMalformed) { 1930 asUtf8Sink(allowMalformed) {
1931 return new _Utf8StringSinkAdapter(this, this[_stringSink], allowMalformed) ; 1931 return new _Utf8StringSinkAdapter(this, this[_stringSink], allowMalformed) ;
1932 } 1932 }
1933 asStringSink() { 1933 asStringSink() {
1934 return ClosableStringSink.fromStringSink(this[_stringSink], dart.bind(this , 'close')); 1934 return ClosableStringSink.fromStringSink(this[_stringSink], dart.bind(this , 'close'));
(...skipping 30 matching lines...) Expand all
1965 } 1965 }
1966 add(str) { 1966 add(str) {
1967 return this[_sink].add(str); 1967 return this[_sink].add(str);
1968 } 1968 }
1969 addSlice(str, start, end, isLast) { 1969 addSlice(str, start, end, isLast) {
1970 if (start == 0 && end == str.length) { 1970 if (start == 0 && end == str.length) {
1971 this.add(str); 1971 this.add(str);
1972 } else { 1972 } else {
1973 this.add(str[dartx.substring](start, end)); 1973 this.add(str[dartx.substring](start, end));
1974 } 1974 }
1975 if (isLast) 1975 if (dart.notNull(isLast))
1976 this.close(); 1976 this.close();
1977 } 1977 }
1978 close() { 1978 close() {
1979 return this[_sink].close(); 1979 return this[_sink].close();
1980 } 1980 }
1981 } 1981 }
1982 dart.setSignature(_StringAdapterSink, { 1982 dart.setSignature(_StringAdapterSink, {
1983 constructors: () => ({_StringAdapterSink: [_StringAdapterSink, [core.Sink$(c ore.String)]]}), 1983 constructors: () => ({_StringAdapterSink: [_StringAdapterSink, [core.Sink$(c ore.String)]]}),
1984 methods: () => ({ 1984 methods: () => ({
1985 addSlice: [dart.void, [core.String, core.int, core.int, core.bool]], 1985 addSlice: [dart.void, [core.String, core.int, core.int, core.bool]],
(...skipping 10 matching lines...) Expand all
1996 close() { 1996 close() {
1997 this[_decoder].close(); 1997 this[_decoder].close();
1998 if (this[_sink] != null) 1998 if (this[_sink] != null)
1999 this[_sink].close(); 1999 this[_sink].close();
2000 } 2000 }
2001 add(chunk) { 2001 add(chunk) {
2002 this.addSlice(chunk, 0, chunk.length, false); 2002 this.addSlice(chunk, 0, chunk.length, false);
2003 } 2003 }
2004 addSlice(codeUnits, startIndex, endIndex, isLast) { 2004 addSlice(codeUnits, startIndex, endIndex, isLast) {
2005 this[_decoder].convert(codeUnits, startIndex, endIndex); 2005 this[_decoder].convert(codeUnits, startIndex, endIndex);
2006 if (isLast) 2006 if (dart.notNull(isLast))
2007 this.close(); 2007 this.close();
2008 } 2008 }
2009 } 2009 }
2010 dart.setSignature(_Utf8StringSinkAdapter, { 2010 dart.setSignature(_Utf8StringSinkAdapter, {
2011 constructors: () => ({_Utf8StringSinkAdapter: [_Utf8StringSinkAdapter, [core .Sink, core.StringSink, core.bool]]}), 2011 constructors: () => ({_Utf8StringSinkAdapter: [_Utf8StringSinkAdapter, [core .Sink, core.StringSink, core.bool]]}),
2012 methods: () => ({ 2012 methods: () => ({
2013 close: [dart.void, []], 2013 close: [dart.void, []],
2014 add: [dart.void, [core.List$(core.int)]], 2014 add: [dart.void, [core.List$(core.int)]],
2015 addSlice: [dart.void, [core.List$(core.int), core.int, core.int, core.bool ]] 2015 addSlice: [dart.void, [core.List$(core.int), core.int, core.int, core.bool ]]
2016 }) 2016 })
2017 }); 2017 });
2018 class _Utf8ConversionSink extends ByteConversionSink { 2018 class _Utf8ConversionSink extends ByteConversionSink {
2019 _Utf8ConversionSink(sink, allowMalformed) { 2019 _Utf8ConversionSink(sink, allowMalformed) {
2020 this._(sink, new core.StringBuffer(), allowMalformed); 2020 this._(sink, new core.StringBuffer(), allowMalformed);
2021 } 2021 }
2022 _(chunkedSink, stringBuffer, allowMalformed) { 2022 _(chunkedSink, stringBuffer, allowMalformed) {
2023 this[_chunkedSink] = chunkedSink; 2023 this[_chunkedSink] = chunkedSink;
2024 this[_decoder] = new _Utf8Decoder(stringBuffer, allowMalformed); 2024 this[_decoder] = new _Utf8Decoder(stringBuffer, allowMalformed);
2025 this[_buffer] = stringBuffer; 2025 this[_buffer] = stringBuffer;
2026 super.ByteConversionSink(); 2026 super.ByteConversionSink();
2027 } 2027 }
2028 close() { 2028 close() {
2029 this[_decoder].close(); 2029 this[_decoder].close();
2030 if (this[_buffer].isNotEmpty) { 2030 if (dart.notNull(this[_buffer].isNotEmpty)) {
2031 let accumulated = dart.toString(this[_buffer]); 2031 let accumulated = dart.toString(this[_buffer]);
2032 this[_buffer].clear(); 2032 this[_buffer].clear();
2033 this[_chunkedSink].addSlice(accumulated, 0, accumulated.length, true); 2033 this[_chunkedSink].addSlice(accumulated, 0, accumulated.length, true);
2034 } else { 2034 } else {
2035 this[_chunkedSink].close(); 2035 this[_chunkedSink].close();
2036 } 2036 }
2037 } 2037 }
2038 add(chunk) { 2038 add(chunk) {
2039 this.addSlice(chunk, 0, chunk.length, false); 2039 this.addSlice(chunk, 0, chunk.length, false);
2040 } 2040 }
2041 addSlice(chunk, startIndex, endIndex, isLast) { 2041 addSlice(chunk, startIndex, endIndex, isLast) {
2042 this[_decoder].convert(chunk, startIndex, endIndex); 2042 this[_decoder].convert(chunk, startIndex, endIndex);
2043 if (this[_buffer].isNotEmpty) { 2043 if (dart.notNull(this[_buffer].isNotEmpty)) {
2044 let accumulated = dart.toString(this[_buffer]); 2044 let accumulated = dart.toString(this[_buffer]);
2045 this[_chunkedSink].addSlice(accumulated, 0, accumulated.length, isLast); 2045 this[_chunkedSink].addSlice(accumulated, 0, accumulated.length, isLast);
2046 this[_buffer].clear(); 2046 this[_buffer].clear();
2047 return; 2047 return;
2048 } 2048 }
2049 if (isLast) 2049 if (dart.notNull(isLast))
2050 this.close(); 2050 this.close();
2051 } 2051 }
2052 } 2052 }
2053 dart.defineNamedConstructor(_Utf8ConversionSink, '_'); 2053 dart.defineNamedConstructor(_Utf8ConversionSink, '_');
2054 dart.setSignature(_Utf8ConversionSink, { 2054 dart.setSignature(_Utf8ConversionSink, {
2055 constructors: () => ({ 2055 constructors: () => ({
2056 _Utf8ConversionSink: [_Utf8ConversionSink, [StringConversionSink, core.boo l]], 2056 _Utf8ConversionSink: [_Utf8ConversionSink, [StringConversionSink, core.boo l]],
2057 _: [_Utf8ConversionSink, [StringConversionSink, core.StringBuffer, core.bo ol]] 2057 _: [_Utf8ConversionSink, [StringConversionSink, core.StringBuffer, core.bo ol]]
2058 }), 2058 }),
2059 methods: () => ({ 2059 methods: () => ({
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
2145 } 2145 }
2146 withBufferSize(bufferSize) { 2146 withBufferSize(bufferSize) {
2147 this[_buffer] = _Utf8Encoder._createBuffer(bufferSize); 2147 this[_buffer] = _Utf8Encoder._createBuffer(bufferSize);
2148 this[_carry] = 0; 2148 this[_carry] = 0;
2149 this[_bufferIndex] = 0; 2149 this[_bufferIndex] = 0;
2150 } 2150 }
2151 static _createBuffer(size) { 2151 static _createBuffer(size) {
2152 return typed_data.Uint8List.new(size); 2152 return typed_data.Uint8List.new(size);
2153 } 2153 }
2154 [_writeSurrogate](leadingSurrogate, nextCodeUnit) { 2154 [_writeSurrogate](leadingSurrogate, nextCodeUnit) {
2155 if (_isTailSurrogate(nextCodeUnit)) { 2155 if (dart.notNull(_isTailSurrogate(nextCodeUnit))) {
2156 let rune = _combineSurrogatePair(leadingSurrogate, nextCodeUnit); 2156 let rune = _combineSurrogatePair(leadingSurrogate, nextCodeUnit);
2157 dart.assert(dart.notNull(rune) > dart.notNull(_THREE_BYTE_LIMIT)); 2157 dart.assert(dart.notNull(rune) > dart.notNull(_THREE_BYTE_LIMIT));
2158 dart.assert(dart.notNull(rune) <= dart.notNull(_FOUR_BYTE_LIMIT)); 2158 dart.assert(dart.notNull(rune) <= dart.notNull(_FOUR_BYTE_LIMIT));
2159 this[_buffer][dartx.set]((() => { 2159 this[_buffer][dartx.set]((() => {
2160 let x = this[_bufferIndex]; 2160 let x = this[_bufferIndex];
2161 this[_bufferIndex] = dart.notNull(x) + 1; 2161 this[_bufferIndex] = dart.notNull(x) + 1;
2162 return x; 2162 return x;
2163 })(), 240 | dart.notNull(rune) >> 18); 2163 })(), 240 | dart.notNull(rune) >> 18);
2164 this[_buffer][dartx.set]((() => { 2164 this[_buffer][dartx.set]((() => {
2165 let x = this[_bufferIndex]; 2165 let x = this[_bufferIndex];
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
2204 for (stringIndex = start; dart.notNull(stringIndex) < dart.notNull(end); s tringIndex = dart.notNull(stringIndex) + 1) { 2204 for (stringIndex = start; dart.notNull(stringIndex) < dart.notNull(end); s tringIndex = dart.notNull(stringIndex) + 1) {
2205 let codeUnit = str[dartx.codeUnitAt](stringIndex); 2205 let codeUnit = str[dartx.codeUnitAt](stringIndex);
2206 if (dart.notNull(codeUnit) <= dart.notNull(_ONE_BYTE_LIMIT)) { 2206 if (dart.notNull(codeUnit) <= dart.notNull(_ONE_BYTE_LIMIT)) {
2207 if (dart.notNull(this[_bufferIndex]) >= dart.notNull(this[_buffer].len gth)) 2207 if (dart.notNull(this[_bufferIndex]) >= dart.notNull(this[_buffer].len gth))
2208 break; 2208 break;
2209 this[_buffer][dartx.set]((() => { 2209 this[_buffer][dartx.set]((() => {
2210 let x = this[_bufferIndex]; 2210 let x = this[_bufferIndex];
2211 this[_bufferIndex] = dart.notNull(x) + 1; 2211 this[_bufferIndex] = dart.notNull(x) + 1;
2212 return x; 2212 return x;
2213 })(), codeUnit); 2213 })(), codeUnit);
2214 } else if (_isLeadSurrogate(codeUnit)) { 2214 } else if (dart.notNull(_isLeadSurrogate(codeUnit))) {
2215 if (dart.notNull(this[_bufferIndex]) + 3 >= dart.notNull(this[_buffer] .length)) 2215 if (dart.notNull(this[_bufferIndex]) + 3 >= dart.notNull(this[_buffer] .length))
2216 break; 2216 break;
2217 let nextCodeUnit = str[dartx.codeUnitAt](dart.notNull(stringIndex) + 1 ); 2217 let nextCodeUnit = str[dartx.codeUnitAt](dart.notNull(stringIndex) + 1 );
2218 let wasCombined = this[_writeSurrogate](codeUnit, nextCodeUnit); 2218 let wasCombined = this[_writeSurrogate](codeUnit, nextCodeUnit);
2219 if (wasCombined) { 2219 if (dart.notNull(wasCombined)) {
2220 stringIndex = dart.notNull(stringIndex) + 1; 2220 stringIndex = dart.notNull(stringIndex) + 1;
2221 } 2221 }
2222 } else { 2222 } else {
2223 let rune = codeUnit; 2223 let rune = codeUnit;
2224 if (dart.notNull(rune) <= dart.notNull(_TWO_BYTE_LIMIT)) { 2224 if (dart.notNull(rune) <= dart.notNull(_TWO_BYTE_LIMIT)) {
2225 if (dart.notNull(this[_bufferIndex]) + 1 >= dart.notNull(this[_buffe r].length)) 2225 if (dart.notNull(this[_bufferIndex]) + 1 >= dart.notNull(this[_buffe r].length))
2226 break; 2226 break;
2227 this[_buffer][dartx.set]((() => { 2227 this[_buffer][dartx.set]((() => {
2228 let x = this[_bufferIndex]; 2228 let x = this[_bufferIndex];
2229 this[_bufferIndex] = dart.notNull(x) + 1; 2229 this[_bufferIndex] = dart.notNull(x) + 1;
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
2292 } 2292 }
2293 if (this[_carry] != 0) { 2293 if (this[_carry] != 0) {
2294 let nextCodeUnit = 0; 2294 let nextCodeUnit = 0;
2295 if (start != end) { 2295 if (start != end) {
2296 nextCodeUnit = str[dartx.codeUnitAt](start); 2296 nextCodeUnit = str[dartx.codeUnitAt](start);
2297 } else { 2297 } else {
2298 dart.assert(isLast); 2298 dart.assert(isLast);
2299 } 2299 }
2300 let wasCombined = this[_writeSurrogate](this[_carry], nextCodeUnit); 2300 let wasCombined = this[_writeSurrogate](this[_carry], nextCodeUnit);
2301 dart.assert(!dart.notNull(wasCombined) || start != end); 2301 dart.assert(!dart.notNull(wasCombined) || start != end);
2302 if (wasCombined) { 2302 if (dart.notNull(wasCombined)) {
2303 start = dart.notNull(start) + 1; 2303 start = dart.notNull(start) + 1;
2304 } 2304 }
2305 this[_carry] = 0; 2305 this[_carry] = 0;
2306 } 2306 }
2307 do { 2307 do {
2308 start = this[_fillBuffer](str, start, end); 2308 start = this[_fillBuffer](str, start, end);
2309 let isLastSlice = dart.notNull(isLast) && start == end; 2309 let isLastSlice = dart.notNull(isLast) && start == end;
2310 if (start == dart.notNull(end) - 1 && dart.notNull(_isLeadSurrogate(str[ dartx.codeUnitAt](start)))) { 2310 if (start == dart.notNull(end) - 1 && dart.notNull(_isLeadSurrogate(str[ dartx.codeUnitAt](start)))) {
2311 if (dart.notNull(isLast) && dart.notNull(this[_bufferIndex]) < dart.no tNull(this[_buffer].length) - 3) { 2311 if (dart.notNull(isLast) && dart.notNull(this[_bufferIndex]) < dart.no tNull(this[_buffer].length) - 3) {
2312 let hasBeenCombined = this[_writeSurrogate](str[dartx.codeUnitAt](st art), 0); 2312 let hasBeenCombined = this[_writeSurrogate](str[dartx.codeUnitAt](st art), 0);
2313 dart.assert(!dart.notNull(hasBeenCombined)); 2313 dart.assert(!dart.notNull(hasBeenCombined));
2314 } else { 2314 } else {
2315 this[_carry] = str[dartx.codeUnitAt](start); 2315 this[_carry] = str[dartx.codeUnitAt](start);
2316 } 2316 }
2317 start = dart.notNull(start) + 1; 2317 start = dart.notNull(start) + 1;
2318 } 2318 }
2319 this[_sink].addSlice(this[_buffer], 0, this[_bufferIndex], isLastSlice); 2319 this[_sink].addSlice(this[_buffer], 0, this[_bufferIndex], isLastSlice);
2320 this[_bufferIndex] = 0; 2320 this[_bufferIndex] = 0;
2321 } while (dart.notNull(start) < dart.notNull(end)); 2321 } while (dart.notNull(start) < dart.notNull(end));
2322 if (isLast) 2322 if (dart.notNull(isLast))
2323 this.close(); 2323 this.close();
2324 } 2324 }
2325 } 2325 }
2326 dart.setSignature(_Utf8EncoderSink, { 2326 dart.setSignature(_Utf8EncoderSink, {
2327 constructors: () => ({_Utf8EncoderSink: [_Utf8EncoderSink, [ByteConversionSi nk]]}), 2327 constructors: () => ({_Utf8EncoderSink: [_Utf8EncoderSink, [ByteConversionSi nk]]}),
2328 methods: () => ({ 2328 methods: () => ({
2329 close: [dart.void, []], 2329 close: [dart.void, []],
2330 addSlice: [dart.void, [core.String, core.int, core.int, core.bool]] 2330 addSlice: [dart.void, [core.String, core.int, core.int, core.bool]]
2331 }) 2331 })
2332 }); 2332 });
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
2414 this[_expectedUnits] = 0; 2414 this[_expectedUnits] = 0;
2415 this[_extraUnits] = 0; 2415 this[_extraUnits] = 0;
2416 } 2416 }
2417 get hasPartialInput() { 2417 get hasPartialInput() {
2418 return dart.notNull(this[_expectedUnits]) > 0; 2418 return dart.notNull(this[_expectedUnits]) > 0;
2419 } 2419 }
2420 close() { 2420 close() {
2421 this.flush(); 2421 this.flush();
2422 } 2422 }
2423 flush() { 2423 flush() {
2424 if (this.hasPartialInput) { 2424 if (dart.notNull(this.hasPartialInput)) {
2425 if (!dart.notNull(this[_allowMalformed])) { 2425 if (!dart.notNull(this[_allowMalformed])) {
2426 throw new core.FormatException("Unfinished UTF-8 octet sequence"); 2426 throw new core.FormatException("Unfinished UTF-8 octet sequence");
2427 } 2427 }
2428 this[_stringSink].writeCharCode(UNICODE_REPLACEMENT_CHARACTER_RUNE); 2428 this[_stringSink].writeCharCode(UNICODE_REPLACEMENT_CHARACTER_RUNE);
2429 this[_value] = 0; 2429 this[_value] = 0;
2430 this[_expectedUnits] = 0; 2430 this[_expectedUnits] = 0;
2431 this[_extraUnits] = 0; 2431 this[_extraUnits] = 0;
2432 } 2432 }
2433 } 2433 }
2434 convert(codeUnits, startIndex, endIndex) { 2434 convert(codeUnits, startIndex, endIndex) {
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
2612 let _upgradedMap = Symbol('_upgradedMap'); 2612 let _upgradedMap = Symbol('_upgradedMap');
2613 let _process = Symbol('_process'); 2613 let _process = Symbol('_process');
2614 let _upgrade = Symbol('_upgrade'); 2614 let _upgrade = Symbol('_upgrade');
2615 class _JsonMap extends core.Object { 2615 class _JsonMap extends core.Object {
2616 _JsonMap(original) { 2616 _JsonMap(original) {
2617 this[_processed] = _JsonMap._newJavaScriptObject(); 2617 this[_processed] = _JsonMap._newJavaScriptObject();
2618 this[_original] = original; 2618 this[_original] = original;
2619 this[_data] = null; 2619 this[_data] = null;
2620 } 2620 }
2621 get(key) { 2621 get(key) {
2622 if (this[_isUpgraded]) { 2622 if (dart.notNull(this[_isUpgraded])) {
2623 return this[_upgradedMap].get(key); 2623 return this[_upgradedMap].get(key);
2624 } else if (!(typeof key == 'string')) { 2624 } else if (!(typeof key == 'string')) {
2625 return null; 2625 return null;
2626 } else { 2626 } else {
2627 let result = _JsonMap._getProperty(this[_processed], dart.as(key, core.S tring)); 2627 let result = _JsonMap._getProperty(this[_processed], dart.as(key, core.S tring));
2628 if (_JsonMap._isUnprocessed(result)) 2628 if (dart.notNull(_JsonMap._isUnprocessed(result)))
2629 result = this[_process](dart.as(key, core.String)); 2629 result = this[_process](dart.as(key, core.String));
2630 return result; 2630 return result;
2631 } 2631 }
2632 } 2632 }
2633 get length() { 2633 get length() {
2634 return this[_isUpgraded] ? this[_upgradedMap].length : this[_computeKeys]( ).length; 2634 return dart.notNull(this[_isUpgraded]) ? this[_upgradedMap].length : this[ _computeKeys]().length;
2635 } 2635 }
2636 get isEmpty() { 2636 get isEmpty() {
2637 return this.length == 0; 2637 return this.length == 0;
2638 } 2638 }
2639 get isNotEmpty() { 2639 get isNotEmpty() {
2640 return dart.notNull(this.length) > 0; 2640 return dart.notNull(this.length) > 0;
2641 } 2641 }
2642 get keys() { 2642 get keys() {
2643 if (this[_isUpgraded]) 2643 if (dart.notNull(this[_isUpgraded]))
2644 return this[_upgradedMap].keys; 2644 return this[_upgradedMap].keys;
2645 return new _JsonMapKeyIterable(this); 2645 return new _JsonMapKeyIterable(this);
2646 } 2646 }
2647 get values() { 2647 get values() {
2648 if (this[_isUpgraded]) 2648 if (dart.notNull(this[_isUpgraded]))
2649 return this[_upgradedMap].values; 2649 return this[_upgradedMap].values;
2650 return _internal.MappedIterable.new(this[_computeKeys](), dart.fn(each => this.get(each))); 2650 return _internal.MappedIterable.new(this[_computeKeys](), dart.fn(each => this.get(each)));
2651 } 2651 }
2652 set(key, value) { 2652 set(key, value) {
2653 if (this[_isUpgraded]) { 2653 if (dart.notNull(this[_isUpgraded])) {
2654 this[_upgradedMap].set(key, value); 2654 this[_upgradedMap].set(key, value);
2655 } else if (this.containsKey(key)) { 2655 } else if (dart.notNull(this.containsKey(key))) {
2656 let processed = this[_processed]; 2656 let processed = this[_processed];
2657 _JsonMap._setProperty(processed, dart.as(key, core.String), value); 2657 _JsonMap._setProperty(processed, dart.as(key, core.String), value);
2658 let original = this[_original]; 2658 let original = this[_original];
2659 if (!dart.notNull(core.identical(original, processed))) { 2659 if (!dart.notNull(core.identical(original, processed))) {
2660 _JsonMap._setProperty(original, dart.as(key, core.String), null); 2660 _JsonMap._setProperty(original, dart.as(key, core.String), null);
2661 } 2661 }
2662 } else { 2662 } else {
2663 this[_upgrade]().set(key, value); 2663 this[_upgrade]().set(key, value);
2664 } 2664 }
2665 } 2665 }
2666 addAll(other) { 2666 addAll(other) {
2667 other.forEach(dart.fn((key, value) => { 2667 other.forEach(dart.fn((key, value) => {
2668 this.set(key, value); 2668 this.set(key, value);
2669 })); 2669 }));
2670 } 2670 }
2671 containsValue(value) { 2671 containsValue(value) {
2672 if (this[_isUpgraded]) 2672 if (dart.notNull(this[_isUpgraded]))
2673 return this[_upgradedMap].containsValue(value); 2673 return this[_upgradedMap].containsValue(value);
2674 let keys = this[_computeKeys](); 2674 let keys = this[_computeKeys]();
2675 for (let i = 0; dart.notNull(i) < dart.notNull(keys.length); i = dart.notN ull(i) + 1) { 2675 for (let i = 0; dart.notNull(i) < dart.notNull(keys.length); i = dart.notN ull(i) + 1) {
2676 let key = keys[dartx.get](i); 2676 let key = keys[dartx.get](i);
2677 if (dart.equals(this.get(key), value)) 2677 if (dart.equals(this.get(key), value))
2678 return true; 2678 return true;
2679 } 2679 }
2680 return false; 2680 return false;
2681 } 2681 }
2682 containsKey(key) { 2682 containsKey(key) {
2683 if (this[_isUpgraded]) 2683 if (dart.notNull(this[_isUpgraded]))
2684 return this[_upgradedMap].containsKey(key); 2684 return this[_upgradedMap].containsKey(key);
2685 if (!(typeof key == 'string')) 2685 if (!(typeof key == 'string'))
2686 return false; 2686 return false;
2687 return _JsonMap._hasProperty(this[_original], dart.as(key, core.String)); 2687 return _JsonMap._hasProperty(this[_original], dart.as(key, core.String));
2688 } 2688 }
2689 putIfAbsent(key, ifAbsent) { 2689 putIfAbsent(key, ifAbsent) {
2690 if (this.containsKey(key)) 2690 if (dart.notNull(this.containsKey(key)))
2691 return this.get(key); 2691 return this.get(key);
2692 let value = ifAbsent(); 2692 let value = ifAbsent();
2693 this.set(key, value); 2693 this.set(key, value);
2694 return value; 2694 return value;
2695 } 2695 }
2696 remove(key) { 2696 remove(key) {
2697 if (!dart.notNull(this[_isUpgraded]) && !dart.notNull(this.containsKey(key ))) 2697 if (!dart.notNull(this[_isUpgraded]) && !dart.notNull(this.containsKey(key )))
2698 return null; 2698 return null;
2699 return this[_upgrade]().remove(key); 2699 return this[_upgrade]().remove(key);
2700 } 2700 }
2701 clear() { 2701 clear() {
2702 if (this[_isUpgraded]) { 2702 if (dart.notNull(this[_isUpgraded])) {
2703 this[_upgradedMap].clear(); 2703 this[_upgradedMap].clear();
2704 } else { 2704 } else {
2705 if (this[_data] != null) { 2705 if (this[_data] != null) {
2706 dart.dsend(this[_data], 'clear'); 2706 dart.dsend(this[_data], 'clear');
2707 } 2707 }
2708 this[_original] = this[_processed] = null; 2708 this[_original] = this[_processed] = null;
2709 this[_data] = dart.map(); 2709 this[_data] = dart.map();
2710 } 2710 }
2711 } 2711 }
2712 forEach(f) { 2712 forEach(f) {
2713 if (this[_isUpgraded]) 2713 if (dart.notNull(this[_isUpgraded]))
2714 return this[_upgradedMap].forEach(f); 2714 return this[_upgradedMap].forEach(f);
2715 let keys = this[_computeKeys](); 2715 let keys = this[_computeKeys]();
2716 for (let i = 0; dart.notNull(i) < dart.notNull(keys.length); i = dart.notN ull(i) + 1) { 2716 for (let i = 0; dart.notNull(i) < dart.notNull(keys.length); i = dart.notN ull(i) + 1) {
2717 let key = keys[dartx.get](i); 2717 let key = keys[dartx.get](i);
2718 let value = _JsonMap._getProperty(this[_processed], key); 2718 let value = _JsonMap._getProperty(this[_processed], key);
2719 if (_JsonMap._isUnprocessed(value)) { 2719 if (dart.notNull(_JsonMap._isUnprocessed(value))) {
2720 value = _convertJsonToDartLazy(_JsonMap._getProperty(this[_original], key)); 2720 value = _convertJsonToDartLazy(_JsonMap._getProperty(this[_original], key));
2721 _JsonMap._setProperty(this[_processed], key, value); 2721 _JsonMap._setProperty(this[_processed], key, value);
2722 } 2722 }
2723 dart.dcall(f, key, value); 2723 dart.dcall(f, key, value);
2724 if (!dart.notNull(core.identical(keys, this[_data]))) { 2724 if (!dart.notNull(core.identical(keys, this[_data]))) {
2725 throw new core.ConcurrentModificationError(this); 2725 throw new core.ConcurrentModificationError(this);
2726 } 2726 }
2727 } 2727 }
2728 } 2728 }
2729 toString() { 2729 toString() {
2730 return collection.Maps.mapToString(this); 2730 return collection.Maps.mapToString(this);
2731 } 2731 }
2732 get [_isUpgraded]() { 2732 get [_isUpgraded]() {
2733 return this[_processed] == null; 2733 return this[_processed] == null;
2734 } 2734 }
2735 get [_upgradedMap]() { 2735 get [_upgradedMap]() {
2736 dart.assert(this[_isUpgraded]); 2736 dart.assert(this[_isUpgraded]);
2737 return dart.as(this[_data], core.Map); 2737 return dart.as(this[_data], core.Map);
2738 } 2738 }
2739 [_computeKeys]() { 2739 [_computeKeys]() {
2740 dart.assert(!dart.notNull(this[_isUpgraded])); 2740 dart.assert(!dart.notNull(this[_isUpgraded]));
2741 let keys = dart.as(this[_data], core.List); 2741 let keys = dart.as(this[_data], core.List);
2742 if (keys == null) { 2742 if (keys == null) {
2743 keys = this[_data] = _JsonMap._getPropertyNames(this[_original]); 2743 keys = this[_data] = _JsonMap._getPropertyNames(this[_original]);
2744 } 2744 }
2745 return dart.as(keys, core.List$(core.String)); 2745 return dart.as(keys, core.List$(core.String));
2746 } 2746 }
2747 [_upgrade]() { 2747 [_upgrade]() {
2748 if (this[_isUpgraded]) 2748 if (dart.notNull(this[_isUpgraded]))
2749 return this[_upgradedMap]; 2749 return this[_upgradedMap];
2750 let result = dart.map(); 2750 let result = dart.map();
2751 let keys = this[_computeKeys](); 2751 let keys = this[_computeKeys]();
2752 for (let i = 0; dart.notNull(i) < dart.notNull(keys.length); i = dart.notN ull(i) + 1) { 2752 for (let i = 0; dart.notNull(i) < dart.notNull(keys.length); i = dart.notN ull(i) + 1) {
2753 let key = keys[dartx.get](i); 2753 let key = keys[dartx.get](i);
2754 result.set(key, this.get(key)); 2754 result.set(key, this.get(key));
2755 } 2755 }
2756 if (keys[dartx.isEmpty]) { 2756 if (dart.notNull(keys[dartx.isEmpty])) {
2757 keys[dartx.add](null); 2757 keys[dartx.add](null);
2758 } else { 2758 } else {
2759 keys[dartx.clear](); 2759 keys[dartx.clear]();
2760 } 2760 }
2761 this[_original] = this[_processed] = null; 2761 this[_original] = this[_processed] = null;
2762 this[_data] = result; 2762 this[_data] = result;
2763 dart.assert(this[_isUpgraded]); 2763 dart.assert(this[_isUpgraded]);
2764 return result; 2764 return result;
2765 } 2765 }
2766 [_process](key) { 2766 [_process](key) {
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
2818 let _parent = Symbol('_parent'); 2818 let _parent = Symbol('_parent');
2819 class _JsonMapKeyIterable extends _internal.ListIterable { 2819 class _JsonMapKeyIterable extends _internal.ListIterable {
2820 _JsonMapKeyIterable(parent) { 2820 _JsonMapKeyIterable(parent) {
2821 this[_parent] = parent; 2821 this[_parent] = parent;
2822 super.ListIterable(); 2822 super.ListIterable();
2823 } 2823 }
2824 get length() { 2824 get length() {
2825 return this[_parent].length; 2825 return this[_parent].length;
2826 } 2826 }
2827 elementAt(index) { 2827 elementAt(index) {
2828 return this[_parent][_isUpgraded] ? dart.as(this[_parent].keys[dartx.eleme ntAt](index), core.String) : this[_parent][_computeKeys]()[dartx.get](index); 2828 return dart.notNull(this[_parent][_isUpgraded]) ? dart.as(this[_parent].ke ys[dartx.elementAt](index), core.String) : this[_parent][_computeKeys]()[dartx.g et](index);
2829 } 2829 }
2830 get iterator() { 2830 get iterator() {
2831 return this[_parent][_isUpgraded] ? this[_parent].keys[dartx.iterator] : t his[_parent][_computeKeys]()[dartx.iterator]; 2831 return dart.notNull(this[_parent][_isUpgraded]) ? this[_parent].keys[dartx .iterator] : this[_parent][_computeKeys]()[dartx.iterator];
2832 } 2832 }
2833 contains(key) { 2833 contains(key) {
2834 return this[_parent].containsKey(key); 2834 return this[_parent].containsKey(key);
2835 } 2835 }
2836 } 2836 }
2837 dart.setSignature(_JsonMapKeyIterable, { 2837 dart.setSignature(_JsonMapKeyIterable, {
2838 constructors: () => ({_JsonMapKeyIterable: [_JsonMapKeyIterable, [_JsonMap]] }), 2838 constructors: () => ({_JsonMapKeyIterable: [_JsonMapKeyIterable, [_JsonMap]] }),
2839 methods: () => ({elementAt: [core.String, [core.int]]}) 2839 methods: () => ({elementAt: [core.String, [core.int]]})
2840 }); 2840 });
2841 class _JsonDecoderSink extends _StringSinkConversionSink { 2841 class _JsonDecoderSink extends _StringSinkConversionSink {
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
2890 exports.LineSplitter = LineSplitter; 2890 exports.LineSplitter = LineSplitter;
2891 exports.StringConversionSink = StringConversionSink; 2891 exports.StringConversionSink = StringConversionSink;
2892 exports.ClosableStringSink = ClosableStringSink; 2892 exports.ClosableStringSink = ClosableStringSink;
2893 exports.UNICODE_REPLACEMENT_CHARACTER_RUNE = UNICODE_REPLACEMENT_CHARACTER_RUN E; 2893 exports.UNICODE_REPLACEMENT_CHARACTER_RUNE = UNICODE_REPLACEMENT_CHARACTER_RUN E;
2894 exports.UNICODE_BOM_CHARACTER_RUNE = UNICODE_BOM_CHARACTER_RUNE; 2894 exports.UNICODE_BOM_CHARACTER_RUNE = UNICODE_BOM_CHARACTER_RUNE;
2895 exports.Utf8Codec = Utf8Codec; 2895 exports.Utf8Codec = Utf8Codec;
2896 exports.UTF8 = UTF8; 2896 exports.UTF8 = UTF8;
2897 exports.Utf8Encoder = Utf8Encoder; 2897 exports.Utf8Encoder = Utf8Encoder;
2898 exports.Utf8Decoder = Utf8Decoder; 2898 exports.Utf8Decoder = Utf8Decoder;
2899 })(convert, core, async, typed_data, _internal, collection); 2899 })(convert, core, async, typed_data, _internal, collection);
OLDNEW
« no previous file with comments | « lib/runtime/dart/collection.js ('k') | lib/runtime/dart/core.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698