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

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

Issue 1095683005: fix super ctor logic (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: merge Created 5 years, 8 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/src/codegen/js_codegen.dart » ('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; 1 var convert;
2 (function(exports) { 2 (function(exports) {
3 'use strict'; 3 'use strict';
4 let ASCII = new AsciiCodec(); 4 let ASCII = new AsciiCodec();
5 let _ASCII_MASK = 127; 5 let _ASCII_MASK = 127;
6 let _allowInvalid = Symbol('_allowInvalid'); 6 let _allowInvalid = Symbol('_allowInvalid');
7 let _nameToEncoding = Symbol('_nameToEncoding'); 7 let _nameToEncoding = Symbol('_nameToEncoding');
8 let Codec$ = dart.generic(function(S, T) { 8 let Codec$ = dart.generic(function(S, T) {
9 class Codec extends core.Object { 9 class Codec extends core.Object {
10 Codec() { 10 Codec() {
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
144 asStringSink() { 144 asStringSink() {
145 return new _StringConversionSinkAsStringSinkAdapter(this); 145 return new _StringConversionSinkAsStringSinkAdapter(this);
146 } 146 }
147 } 147 }
148 StringConversionSinkMixin[dart.implements] = () => [StringConversionSink]; 148 StringConversionSinkMixin[dart.implements] = () => [StringConversionSink];
149 class StringConversionSinkBase extends StringConversionSinkMixin {} 149 class StringConversionSinkBase extends StringConversionSinkMixin {}
150 class _UnicodeSubsetEncoderSink extends StringConversionSinkBase { 150 class _UnicodeSubsetEncoderSink extends StringConversionSinkBase {
151 _UnicodeSubsetEncoderSink(subsetMask, sink) { 151 _UnicodeSubsetEncoderSink(subsetMask, sink) {
152 this[_subsetMask] = subsetMask; 152 this[_subsetMask] = subsetMask;
153 this[_sink] = sink; 153 this[_sink] = sink;
154 super.StringConversionSinkBase();
155 } 154 }
156 close() { 155 close() {
157 this[_sink].close(); 156 this[_sink].close();
158 } 157 }
159 addSlice(source, start, end, isLast) { 158 addSlice(source, start, end, isLast) {
160 core.RangeError.checkValidRange(start, end, source.length); 159 core.RangeError.checkValidRange(start, end, source.length);
161 for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull( i) + 1) { 160 for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull( i) + 1) {
162 let codeUnit = source.codeUnitAt(i); 161 let codeUnit = source.codeUnitAt(i);
163 if ((dart.notNull(codeUnit) & ~dart.notNull(this[_subsetMask])) != 0) { 162 if ((dart.notNull(codeUnit) & ~dart.notNull(this[_subsetMask])) != 0) {
164 throw new core.ArgumentError(`Source contains invalid character with c ode point: ${codeUnit}.`); 163 throw new core.ArgumentError(`Source contains invalid character with c ode point: ${codeUnit}.`);
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
261 class ByteConversionSinkBase extends ByteConversionSink { 260 class ByteConversionSinkBase extends ByteConversionSink {
262 addSlice(chunk, start, end, isLast) { 261 addSlice(chunk, start, end, isLast) {
263 this.add(chunk[core.$sublist](start, end)); 262 this.add(chunk[core.$sublist](start, end));
264 if (isLast) 263 if (isLast)
265 this.close(); 264 this.close();
266 } 265 }
267 } 266 }
268 class _ErrorHandlingAsciiDecoderSink extends ByteConversionSinkBase { 267 class _ErrorHandlingAsciiDecoderSink extends ByteConversionSinkBase {
269 _ErrorHandlingAsciiDecoderSink(utf8Sink) { 268 _ErrorHandlingAsciiDecoderSink(utf8Sink) {
270 this[_utf8Sink] = utf8Sink; 269 this[_utf8Sink] = utf8Sink;
271 super.ByteConversionSinkBase();
272 } 270 }
273 close() { 271 close() {
274 this[_utf8Sink].close(); 272 this[_utf8Sink].close();
275 } 273 }
276 add(source) { 274 add(source) {
277 this.addSlice(source, 0, source[core.$length], false); 275 this.addSlice(source, 0, source[core.$length], false);
278 } 276 }
279 addSlice(source, start, end, isLast) { 277 addSlice(source, start, end, isLast) {
280 core.RangeError.checkValidRange(start, end, source[core.$length]); 278 core.RangeError.checkValidRange(start, end, source[core.$length]);
281 for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull( i) + 1) { 279 for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull( i) + 1) {
282 if ((dart.notNull(source[core.$get](i)) & ~dart.notNull(_ASCII_MASK)) != 0) { 280 if ((dart.notNull(source[core.$get](i)) & ~dart.notNull(_ASCII_MASK)) != 0) {
283 if (dart.notNull(i) > dart.notNull(start)) 281 if (dart.notNull(i) > dart.notNull(start))
284 this[_utf8Sink].addSlice(source, start, i, false); 282 this[_utf8Sink].addSlice(source, start, i, false);
285 this[_utf8Sink].add(/* Unimplemented const */new core.List$(core.int). from([239, 191, 189])); 283 this[_utf8Sink].add(/* Unimplemented const */new core.List$(core.int). from([239, 191, 189]));
286 start = dart.notNull(i) + 1; 284 start = dart.notNull(i) + 1;
287 } 285 }
288 } 286 }
289 if (dart.notNull(start) < dart.notNull(end)) { 287 if (dart.notNull(start) < dart.notNull(end)) {
290 this[_utf8Sink].addSlice(source, start, end, isLast); 288 this[_utf8Sink].addSlice(source, start, end, isLast);
291 } else if (isLast) { 289 } else if (isLast) {
292 this.close(); 290 this.close();
293 } 291 }
294 } 292 }
295 } 293 }
296 class _SimpleAsciiDecoderSink extends ByteConversionSinkBase { 294 class _SimpleAsciiDecoderSink extends ByteConversionSinkBase {
297 _SimpleAsciiDecoderSink(sink) { 295 _SimpleAsciiDecoderSink(sink) {
298 this[_sink] = sink; 296 this[_sink] = sink;
299 super.ByteConversionSinkBase();
300 } 297 }
301 close() { 298 close() {
302 this[_sink].close(); 299 this[_sink].close();
303 } 300 }
304 add(source) { 301 add(source) {
305 for (let i = 0; dart.notNull(i) < dart.notNull(source[core.$length]); i = dart.notNull(i) + 1) { 302 for (let i = 0; dart.notNull(i) < dart.notNull(source[core.$length]); i = dart.notNull(i) + 1) {
306 if ((dart.notNull(source[core.$get](i)) & ~dart.notNull(_ASCII_MASK)) != 0) { 303 if ((dart.notNull(source[core.$get](i)) & ~dart.notNull(_ASCII_MASK)) != 0) {
307 throw new core.FormatException("Source contains non-ASCII bytes."); 304 throw new core.FormatException("Source contains non-ASCII bytes.");
308 } 305 }
309 } 306 }
310 this[_sink].add(new core.String.fromCharCodes(source)); 307 this[_sink].add(new core.String.fromCharCodes(source));
311 } 308 }
312 addSlice(source, start, end, isLast) { 309 addSlice(source, start, end, isLast) {
313 let length = source[core.$length]; 310 let length = source[core.$length];
314 core.RangeError.checkValidRange(start, end, length); 311 core.RangeError.checkValidRange(start, end, length);
315 if (dart.notNull(start) < dart.notNull(end)) { 312 if (dart.notNull(start) < dart.notNull(end)) {
316 if (start != 0 || end != length) { 313 if (start != 0 || end != length) {
317 source = source[core.$sublist](start, end); 314 source = source[core.$sublist](start, end);
318 } 315 }
319 this.add(source); 316 this.add(source);
320 } 317 }
321 if (isLast) 318 if (isLast)
322 this.close(); 319 this.close();
323 } 320 }
324 } 321 }
325 class _ByteAdapterSink extends ByteConversionSinkBase { 322 class _ByteAdapterSink extends ByteConversionSinkBase {
326 _ByteAdapterSink(sink) { 323 _ByteAdapterSink(sink) {
327 this[_sink] = sink; 324 this[_sink] = sink;
328 super.ByteConversionSinkBase();
329 } 325 }
330 add(chunk) { 326 add(chunk) {
331 return this[_sink].add(chunk); 327 return this[_sink].add(chunk);
332 } 328 }
333 close() { 329 close() {
334 return this[_sink].close(); 330 return this[_sink].close();
335 } 331 }
336 } 332 }
337 let _INITIAL_BUFFER_SIZE = Symbol('_INITIAL_BUFFER_SIZE'); 333 let _INITIAL_BUFFER_SIZE = Symbol('_INITIAL_BUFFER_SIZE');
338 let _buffer = Symbol('_buffer'); 334 let _buffer = Symbol('_buffer');
339 let _callback = Symbol('_callback'); 335 let _callback = Symbol('_callback');
340 let _bufferIndex = Symbol('_bufferIndex'); 336 let _bufferIndex = Symbol('_bufferIndex');
341 let _roundToPowerOf2 = Symbol('_roundToPowerOf2'); 337 let _roundToPowerOf2 = Symbol('_roundToPowerOf2');
342 class _ByteCallbackSink extends ByteConversionSinkBase { 338 class _ByteCallbackSink extends ByteConversionSinkBase {
343 _ByteCallbackSink(callback) { 339 _ByteCallbackSink(callback) {
344 this[_buffer] = new typed_data.Uint8List(_ByteCallbackSink[_INITIAL_BUFFER _SIZE]); 340 this[_buffer] = new typed_data.Uint8List(_ByteCallbackSink[_INITIAL_BUFFER _SIZE]);
345 this[_callback] = callback; 341 this[_callback] = callback;
346 this[_bufferIndex] = 0; 342 this[_bufferIndex] = 0;
347 super.ByteConversionSinkBase();
348 } 343 }
349 add(chunk) { 344 add(chunk) {
350 let freeCount = dart.notNull(this[_buffer][core.$length]) - dart.notNull(t his[_bufferIndex]); 345 let freeCount = dart.notNull(this[_buffer][core.$length]) - dart.notNull(t his[_bufferIndex]);
351 if (dart.notNull(chunk[core.$length]) > dart.notNull(freeCount)) { 346 if (dart.notNull(chunk[core.$length]) > dart.notNull(freeCount)) {
352 let oldLength = this[_buffer][core.$length]; 347 let oldLength = this[_buffer][core.$length];
353 let newLength = dart.notNull(_ByteCallbackSink[_roundToPowerOf2](dart.no tNull(chunk[core.$length]) + dart.notNull(oldLength))) * 2; 348 let newLength = dart.notNull(_ByteCallbackSink[_roundToPowerOf2](dart.no tNull(chunk[core.$length]) + dart.notNull(oldLength))) * 2;
354 let grown = new typed_data.Uint8List(newLength); 349 let grown = new typed_data.Uint8List(newLength);
355 grown[core.$setRange](0, this[_buffer][core.$length], this[_buffer]); 350 grown[core.$setRange](0, this[_buffer][core.$length], this[_buffer]);
356 this[_buffer] = grown; 351 this[_buffer] = grown;
357 } 352 }
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after
586 sink = new StringConversionSink.from(sink); 581 sink = new StringConversionSink.from(sink);
587 } 582 }
588 return new _HtmlEscapeSink(this, dart.as(sink, StringConversionSink)); 583 return new _HtmlEscapeSink(this, dart.as(sink, StringConversionSink));
589 } 584 }
590 } 585 }
591 let _escape = Symbol('_escape'); 586 let _escape = Symbol('_escape');
592 class _HtmlEscapeSink extends StringConversionSinkBase { 587 class _HtmlEscapeSink extends StringConversionSinkBase {
593 _HtmlEscapeSink(escape, sink) { 588 _HtmlEscapeSink(escape, sink) {
594 this[_escape] = escape; 589 this[_escape] = escape;
595 this[_sink] = sink; 590 this[_sink] = sink;
596 super.StringConversionSinkBase();
597 } 591 }
598 addSlice(chunk, start, end, isLast) { 592 addSlice(chunk, start, end, isLast) {
599 let val = this[_escape][_convert](chunk, start, end); 593 let val = this[_escape][_convert](chunk, start, end);
600 if (val == null) { 594 if (val == null) {
601 this[_sink].addSlice(chunk, start, end, isLast); 595 this[_sink].addSlice(chunk, start, end, isLast);
602 } else { 596 } else {
603 this[_sink].add(val); 597 this[_sink].add(val);
604 if (isLast) 598 if (isLast)
605 this[_sink].close(); 599 this[_sink].close();
606 } 600 }
(...skipping 709 matching lines...) Expand 10 before | Expand all | Expand 10 after
1316 } 1310 }
1317 if (!dart.notNull(this[_allowInvalid])) 1311 if (!dart.notNull(this[_allowInvalid]))
1318 return new _Latin1DecoderSink(stringSink); 1312 return new _Latin1DecoderSink(stringSink);
1319 return new _Latin1AllowInvalidDecoderSink(stringSink); 1313 return new _Latin1AllowInvalidDecoderSink(stringSink);
1320 } 1314 }
1321 } 1315 }
1322 let _addSliceToSink = Symbol('_addSliceToSink'); 1316 let _addSliceToSink = Symbol('_addSliceToSink');
1323 class _Latin1DecoderSink extends ByteConversionSinkBase { 1317 class _Latin1DecoderSink extends ByteConversionSinkBase {
1324 _Latin1DecoderSink(sink) { 1318 _Latin1DecoderSink(sink) {
1325 this[_sink] = sink; 1319 this[_sink] = sink;
1326 super.ByteConversionSinkBase();
1327 } 1320 }
1328 close() { 1321 close() {
1329 this[_sink].close(); 1322 this[_sink].close();
1330 } 1323 }
1331 add(source) { 1324 add(source) {
1332 this.addSlice(source, 0, source[core.$length], false); 1325 this.addSlice(source, 0, source[core.$length], false);
1333 } 1326 }
1334 [_addSliceToSink](source, start, end, isLast) { 1327 [_addSliceToSink](source, start, end, isLast) {
1335 this[_sink].add(new core.String.fromCharCodes(source, start, end)); 1328 this[_sink].add(new core.String.fromCharCodes(source, start, end));
1336 if (isLast) 1329 if (isLast)
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
1392 return new _LineSplitterSink(dart.as(sink, StringConversionSink)); 1385 return new _LineSplitterSink(dart.as(sink, StringConversionSink));
1393 } 1386 }
1394 } 1387 }
1395 let _carry = Symbol('_carry'); 1388 let _carry = Symbol('_carry');
1396 let _LF = Symbol('_LF'); 1389 let _LF = Symbol('_LF');
1397 let _CR = Symbol('_CR'); 1390 let _CR = Symbol('_CR');
1398 class _LineSplitterSink extends StringConversionSinkBase { 1391 class _LineSplitterSink extends StringConversionSinkBase {
1399 _LineSplitterSink(sink) { 1392 _LineSplitterSink(sink) {
1400 this[_sink] = sink; 1393 this[_sink] = sink;
1401 this[_carry] = null; 1394 this[_carry] = null;
1402 super.StringConversionSinkBase();
1403 } 1395 }
1404 addSlice(chunk, start, end, isLast) { 1396 addSlice(chunk, start, end, isLast) {
1405 if (this[_carry] != null) { 1397 if (this[_carry] != null) {
1406 chunk = dart.notNull(this[_carry]) + dart.notNull(chunk.substring(start, end)); 1398 chunk = dart.notNull(this[_carry]) + dart.notNull(chunk.substring(start, end));
1407 start = 0; 1399 start = 0;
1408 end = chunk.length; 1400 end = chunk.length;
1409 this[_carry] = null; 1401 this[_carry] = null;
1410 } 1402 }
1411 this[_carry] = _LineSplitterSink[_addSlice](chunk, start, end, isLast, thi s[_sink].add); 1403 this[_carry] = _LineSplitterSink[_addSlice](chunk, start, end, isLast, thi s[_sink].add);
1412 if (isLast) 1404 if (isLast)
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
1557 this[_buffer].clear(); 1549 this[_buffer].clear();
1558 this[_chunkedSink].add(accumulated); 1550 this[_chunkedSink].add(accumulated);
1559 } 1551 }
1560 } 1552 }
1561 _StringConversionSinkAsStringSinkAdapter[dart.implements] = () => [ClosableStr ingSink]; 1553 _StringConversionSinkAsStringSinkAdapter[dart.implements] = () => [ClosableStr ingSink];
1562 _StringConversionSinkAsStringSinkAdapter._MIN_STRING_SIZE = 16; 1554 _StringConversionSinkAsStringSinkAdapter._MIN_STRING_SIZE = 16;
1563 let _stringSink = Symbol('_stringSink'); 1555 let _stringSink = Symbol('_stringSink');
1564 class _StringSinkConversionSink extends StringConversionSinkBase { 1556 class _StringSinkConversionSink extends StringConversionSinkBase {
1565 _StringSinkConversionSink(stringSink) { 1557 _StringSinkConversionSink(stringSink) {
1566 this[_stringSink] = stringSink; 1558 this[_stringSink] = stringSink;
1567 super.StringConversionSinkBase();
1568 } 1559 }
1569 close() {} 1560 close() {}
1570 addSlice(str, start, end, isLast) { 1561 addSlice(str, start, end, isLast) {
1571 if (start != 0 || end != str.length) { 1562 if (start != 0 || end != str.length) {
1572 for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNul l(i) + 1) { 1563 for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNul l(i) + 1) {
1573 this[_stringSink].writeCharCode(str.codeUnitAt(i)); 1564 this[_stringSink].writeCharCode(str.codeUnitAt(i));
1574 } 1565 }
1575 } else { 1566 } else {
1576 this[_stringSink].write(str); 1567 this[_stringSink].write(str);
1577 } 1568 }
(...skipping 21 matching lines...) Expand all
1599 buffer.clear(); 1590 buffer.clear();
1600 this[_callback](accumulated); 1591 this[_callback](accumulated);
1601 } 1592 }
1602 asUtf8Sink(allowMalformed) { 1593 asUtf8Sink(allowMalformed) {
1603 return new _Utf8StringSinkAdapter(this, this[_stringSink], allowMalformed) ; 1594 return new _Utf8StringSinkAdapter(this, this[_stringSink], allowMalformed) ;
1604 } 1595 }
1605 } 1596 }
1606 class _StringAdapterSink extends StringConversionSinkBase { 1597 class _StringAdapterSink extends StringConversionSinkBase {
1607 _StringAdapterSink(sink) { 1598 _StringAdapterSink(sink) {
1608 this[_sink] = sink; 1599 this[_sink] = sink;
1609 super.StringConversionSinkBase();
1610 } 1600 }
1611 add(str) { 1601 add(str) {
1612 return this[_sink].add(str); 1602 return this[_sink].add(str);
1613 } 1603 }
1614 addSlice(str, start, end, isLast) { 1604 addSlice(str, start, end, isLast) {
1615 if (start == 0 && end == str.length) { 1605 if (start == 0 && end == str.length) {
1616 this.add(str); 1606 this.add(str);
1617 } else { 1607 } else {
1618 this.add(str.substring(start, end)); 1608 this.add(str.substring(start, end));
1619 } 1609 }
(...skipping 817 matching lines...) Expand 10 before | Expand all | Expand 10 after
2437 exports.LineSplitter = LineSplitter; 2427 exports.LineSplitter = LineSplitter;
2438 exports.StringConversionSink = StringConversionSink; 2428 exports.StringConversionSink = StringConversionSink;
2439 exports.ClosableStringSink = ClosableStringSink; 2429 exports.ClosableStringSink = ClosableStringSink;
2440 exports.UNICODE_REPLACEMENT_CHARACTER_RUNE = UNICODE_REPLACEMENT_CHARACTER_RUN E; 2430 exports.UNICODE_REPLACEMENT_CHARACTER_RUNE = UNICODE_REPLACEMENT_CHARACTER_RUN E;
2441 exports.UNICODE_BOM_CHARACTER_RUNE = UNICODE_BOM_CHARACTER_RUNE; 2431 exports.UNICODE_BOM_CHARACTER_RUNE = UNICODE_BOM_CHARACTER_RUNE;
2442 exports.UTF8 = UTF8; 2432 exports.UTF8 = UTF8;
2443 exports.Utf8Codec = Utf8Codec; 2433 exports.Utf8Codec = Utf8Codec;
2444 exports.Utf8Encoder = Utf8Encoder; 2434 exports.Utf8Encoder = Utf8Encoder;
2445 exports.Utf8Decoder = Utf8Decoder; 2435 exports.Utf8Decoder = Utf8Decoder;
2446 })(convert || (convert = {})); 2436 })(convert || (convert = {}));
OLDNEW
« no previous file with comments | « lib/runtime/dart/collection.js ('k') | lib/src/codegen/js_codegen.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698