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

Unified Diff: lib/runtime/dart/convert.js

Issue 1045323002: emit interfaces before use (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Created 5 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « lib/runtime/dart/collection.js ('k') | lib/runtime/dart/core.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/runtime/dart/convert.js
diff --git a/lib/runtime/dart/convert.js b/lib/runtime/dart/convert.js
index b1ccb8f2027438c543a007d907021d3671eb5478..7cbd821221448542961434a1948033ac7a12d6b2 100644
--- a/lib/runtime/dart/convert.js
+++ b/lib/runtime/dart/convert.js
@@ -72,65 +72,87 @@ var convert;
}
}
let _subsetMask = Symbol('_subsetMask');
- let Converter$ = dart.generic(function(S, T) {
- class Converter extends core.Object {
- Converter() {
- }
- fuse(other) {
- return new _FusedConverter(this, other);
- }
- startChunkedConversion(sink) {
- throw new core.UnsupportedError(`This converter does not support chunked conversions: ${this}`);
- }
- bind(source) {
- return new async.Stream.eventTransformed(source, ((sink) => new _ConverterStreamEventSink(this, sink)).bind(this));
+ dart.defineLazyClass(exports, {
+ get _UnicodeSubsetEncoder() {
+ class _UnicodeSubsetEncoder extends exports.Converter$(core.String, core.List$(core.int)) {
+ _UnicodeSubsetEncoder(subsetMask) {
+ this[_subsetMask] = subsetMask;
+ super.Converter();
+ }
+ convert(string, start, end) {
+ if (start === void 0)
+ start = 0;
+ if (end === void 0)
+ end = null;
+ let stringLength = string.length;
+ core.RangeError.checkValidRange(start, end, stringLength);
+ if (end == null)
+ end = stringLength;
+ let length = dart.notNull(end) - dart.notNull(start);
+ let result = new typed_data.Uint8List(length);
+ for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull(i) + 1) {
+ let codeUnit = string.codeUnitAt(dart.notNull(start) + dart.notNull(i));
+ if ((dart.notNull(codeUnit) & ~dart.notNull(this[_subsetMask])) != 0) {
+ throw new core.ArgumentError("String contains invalid characters.");
+ }
+ result.set(i, codeUnit);
+ }
+ return dart.as(result, core.List$(core.int));
+ }
+ startChunkedConversion(sink) {
+ if (!dart.is(sink, ByteConversionSink)) {
+ sink = new ByteConversionSink.from(sink);
+ }
+ return new _UnicodeSubsetEncoderSink(this[_subsetMask], dart.as(sink, ByteConversionSink));
+ }
+ bind(stream) {
+ return dart.as(super.bind(stream), async.Stream$(core.List$(core.int)));
+ }
}
+ return _UnicodeSubsetEncoder;
}
- Converter[dart.implements] = [async.StreamTransformer];
- return Converter;
});
- let Converter = Converter$(dart.dynamic, dart.dynamic);
- class _UnicodeSubsetEncoder extends Converter$(core.String, core.List$(core.int)) {
- _UnicodeSubsetEncoder(subsetMask) {
- this[_subsetMask] = subsetMask;
- super.Converter();
- }
- convert(string, start, end) {
- if (start === void 0)
- start = 0;
- if (end === void 0)
- end = null;
- let stringLength = string.length;
- core.RangeError.checkValidRange(start, end, stringLength);
- if (end == null)
- end = stringLength;
- let length = dart.notNull(end) - dart.notNull(start);
- let result = new typed_data.Uint8List(length);
- for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull(i) + 1) {
- let codeUnit = string.codeUnitAt(dart.notNull(start) + dart.notNull(i));
- if ((dart.notNull(codeUnit) & ~dart.notNull(this[_subsetMask])) != 0) {
- throw new core.ArgumentError("String contains invalid characters.");
+ dart.defineLazyClass(exports, {
+ get AsciiEncoder() {
+ class AsciiEncoder extends exports._UnicodeSubsetEncoder {
+ AsciiEncoder() {
+ super._UnicodeSubsetEncoder(_ASCII_MASK);
}
- result.set(i, codeUnit);
}
- return dart.as(result, core.List$(core.int));
+ return AsciiEncoder;
}
- startChunkedConversion(sink) {
- if (!dart.is(sink, ByteConversionSink)) {
- sink = new ByteConversionSink.from(sink);
+ });
+ let _sink = Symbol('_sink');
+ let ChunkedConversionSink$ = dart.generic(function(T) {
+ class ChunkedConversionSink extends core.Object {
+ ChunkedConversionSink() {
+ }
+ withCallback(callback) {
+ return new _SimpleCallbackSink(callback);
}
- return new _UnicodeSubsetEncoderSink(this[_subsetMask], dart.as(sink, ByteConversionSink));
}
- bind(stream) {
- return dart.as(super.bind(stream), async.Stream$(core.List$(core.int)));
+ ChunkedConversionSink[dart.implements] = [core.Sink$(T)];
+ dart.defineNamedConstructor(ChunkedConversionSink, 'withCallback');
+ return ChunkedConversionSink;
+ });
+ let ChunkedConversionSink = ChunkedConversionSink$(dart.dynamic);
+ class StringConversionSink extends ChunkedConversionSink$(core.String) {
+ StringConversionSink() {
+ super.ChunkedConversionSink();
}
- }
- class AsciiEncoder extends _UnicodeSubsetEncoder {
- AsciiEncoder() {
- super._UnicodeSubsetEncoder(_ASCII_MASK);
+ withCallback(callback) {
+ return new _StringCallbackSink(callback);
+ }
+ from(sink) {
+ return new _StringAdapterSink(sink);
+ }
+ fromStringSink(sink) {
+ return new _StringSinkConversionSink(sink);
}
}
- let _sink = Symbol('_sink');
+ dart.defineNamedConstructor(StringConversionSink, 'withCallback');
+ dart.defineNamedConstructor(StringConversionSink, 'from');
+ dart.defineNamedConstructor(StringConversionSink, 'fromStringSink');
class StringConversionSinkMixin extends core.Object {
add(str) {
return this.addSlice(str, 0, str.length, false);
@@ -143,8 +165,7 @@ var convert;
}
}
StringConversionSinkMixin[dart.implements] = [StringConversionSink];
- class StringConversionSinkBase extends StringConversionSinkMixin {
- }
+ class StringConversionSinkBase extends StringConversionSinkMixin {}
class _UnicodeSubsetEncoderSink extends StringConversionSinkBase {
_UnicodeSubsetEncoderSink(subsetMask, sink$) {
this[_subsetMask] = subsetMask;
@@ -169,80 +190,77 @@ var convert;
}
}
let _convertInvalid = Symbol('_convertInvalid');
- class _UnicodeSubsetDecoder extends Converter$(core.List$(core.int), core.String) {
- _UnicodeSubsetDecoder(allowInvalid$, subsetMask) {
- this[_allowInvalid] = allowInvalid$;
- this[_subsetMask] = subsetMask;
- super.Converter();
- }
- convert(bytes, start, end) {
- if (start === void 0)
- start = 0;
- if (end === void 0)
- end = null;
- let byteCount = bytes.length;
- core.RangeError.checkValidRange(start, end, byteCount);
- if (end == null)
- end = byteCount;
- let length = dart.notNull(end) - dart.notNull(start);
- for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
- let byte = bytes.get(i);
- if ((dart.notNull(byte) & ~dart.notNull(this[_subsetMask])) != 0) {
- if (!dart.notNull(this[_allowInvalid])) {
- throw new core.FormatException(`Invalid value in input: ${byte}`);
+ dart.defineLazyClass(exports, {
+ get _UnicodeSubsetDecoder() {
+ class _UnicodeSubsetDecoder extends exports.Converter$(core.List$(core.int), core.String) {
+ _UnicodeSubsetDecoder(allowInvalid$, subsetMask) {
+ this[_allowInvalid] = allowInvalid$;
+ this[_subsetMask] = subsetMask;
+ super.Converter();
+ }
+ convert(bytes, start, end) {
+ if (start === void 0)
+ start = 0;
+ if (end === void 0)
+ end = null;
+ let byteCount = bytes.length;
+ core.RangeError.checkValidRange(start, end, byteCount);
+ if (end == null)
+ end = byteCount;
+ let length = dart.notNull(end) - dart.notNull(start);
+ for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
+ let byte = bytes.get(i);
+ if ((dart.notNull(byte) & ~dart.notNull(this[_subsetMask])) != 0) {
+ if (!dart.notNull(this[_allowInvalid])) {
+ throw new core.FormatException(`Invalid value in input: ${byte}`);
+ }
+ return this[_convertInvalid](bytes, start, end);
+ }
}
- return this[_convertInvalid](bytes, start, end);
+ return new core.String.fromCharCodes(bytes, start, end);
+ }
+ [_convertInvalid](bytes, start, end) {
+ let buffer = new core.StringBuffer();
+ for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
+ let value = bytes.get(i);
+ if ((dart.notNull(value) & ~dart.notNull(this[_subsetMask])) != 0)
+ value = 65533;
+ buffer.writeCharCode(value);
+ }
+ return buffer.toString();
+ }
+ bind(stream) {
+ return dart.as(super.bind(stream), async.Stream$(core.String));
}
}
- return new core.String.fromCharCodes(bytes, start, end);
- }
- [_convertInvalid](bytes, start, end) {
- let buffer = new core.StringBuffer();
- for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
- let value = bytes.get(i);
- if ((dart.notNull(value) & ~dart.notNull(this[_subsetMask])) != 0)
- value = 65533;
- buffer.writeCharCode(value);
- }
- return buffer.toString();
- }
- bind(stream) {
- return dart.as(super.bind(stream), async.Stream$(core.String));
- }
- }
- class AsciiDecoder extends _UnicodeSubsetDecoder {
- AsciiDecoder(opts) {
- let allowInvalid = opts && 'allowInvalid' in opts ? opts.allowInvalid : false;
- super._UnicodeSubsetDecoder(allowInvalid, _ASCII_MASK);
- }
- startChunkedConversion(sink) {
- let stringSink = null;
- if (dart.is(sink, StringConversionSink)) {
- stringSink = sink;
- } else {
- stringSink = new StringConversionSink.from(sink);
- }
- if (this[_allowInvalid]) {
- return new _ErrorHandlingAsciiDecoderSink(stringSink.asUtf8Sink(false));
- } else {
- return new _SimpleAsciiDecoderSink(stringSink);
- }
+ return _UnicodeSubsetDecoder;
}
- }
- let _utf8Sink = Symbol('_utf8Sink');
- let ChunkedConversionSink$ = dart.generic(function(T) {
- class ChunkedConversionSink extends core.Object {
- ChunkedConversionSink() {
- }
- withCallback(callback) {
- return new _SimpleCallbackSink(callback);
+ });
+ dart.defineLazyClass(exports, {
+ get AsciiDecoder() {
+ class AsciiDecoder extends exports._UnicodeSubsetDecoder {
+ AsciiDecoder(opts) {
+ let allowInvalid = opts && 'allowInvalid' in opts ? opts.allowInvalid : false;
+ super._UnicodeSubsetDecoder(allowInvalid, _ASCII_MASK);
+ }
+ startChunkedConversion(sink) {
+ let stringSink = null;
+ if (dart.is(sink, StringConversionSink)) {
+ stringSink = sink;
+ } else {
+ stringSink = new StringConversionSink.from(sink);
+ }
+ if (this[_allowInvalid]) {
+ return new _ErrorHandlingAsciiDecoderSink(stringSink.asUtf8Sink(false));
+ } else {
+ return new _SimpleAsciiDecoderSink(stringSink);
+ }
+ }
}
+ return AsciiDecoder;
}
- ChunkedConversionSink[dart.implements] = [core.Sink$(T)];
- dart.defineNamedConstructor(ChunkedConversionSink, 'withCallback');
- return ChunkedConversionSink;
});
- let ChunkedConversionSink = ChunkedConversionSink$(dart.dynamic);
+ let _utf8Sink = Symbol('_utf8Sink');
class ByteConversionSink extends ChunkedConversionSink$(core.List$(core.int)) {
ByteConversionSink() {
super.ChunkedConversionSink();
@@ -429,16 +447,16 @@ var convert;
_ConverterStreamEventSink[dart.implements] = [async.EventSink$(S)];
return _ConverterStreamEventSink;
});
- let _ConverterStreamEventSink = _ConverterStreamEventSink$(dart.dynamic, dart.dynamic);
+ dart.defineLazyClassGeneric(exports, '_ConverterStreamEventSink', {get: _ConverterStreamEventSink$});
let _first = Symbol('_first');
let _second = Symbol('_second');
let _FusedCodec$ = dart.generic(function(S, M, T) {
class _FusedCodec extends Codec$(S, T) {
get encoder() {
- return dart.as(this[_first].encoder.fuse(this[_second].encoder), Converter$(S, T));
+ return dart.as(this[_first].encoder.fuse(this[_second].encoder), exports.Converter$(S, T));
}
get decoder() {
- return dart.as(this[_second].decoder.fuse(this[_first].decoder), Converter$(T, S));
+ return dart.as(this[_second].decoder.fuse(this[_first].decoder), exports.Converter$(T, S));
}
_FusedCodec(first$, second) {
this[_first] = first$;
@@ -469,8 +487,26 @@ var convert;
return _InvertedCodec;
});
let _InvertedCodec = _InvertedCodec$(dart.dynamic, dart.dynamic);
+ let Converter$ = dart.generic(function(S, T) {
+ class Converter extends core.Object {
+ Converter() {
+ }
+ fuse(other) {
+ return new _FusedConverter(this, other);
+ }
+ startChunkedConversion(sink) {
+ throw new core.UnsupportedError(`This converter does not support chunked conversions: ${this}`);
+ }
+ bind(source) {
+ return new async.Stream.eventTransformed(source, ((sink) => new _ConverterStreamEventSink(this, sink)).bind(this));
+ }
+ }
+ Converter[dart.implements] = [async.StreamTransformer];
+ return Converter;
+ });
+ dart.defineLazyClassGeneric(exports, 'Converter', {get: Converter$});
let _FusedConverter$ = dart.generic(function(S, M, T) {
- class _FusedConverter extends Converter$(S, T) {
+ class _FusedConverter extends exports.Converter$(S, T) {
_FusedConverter(first$, second) {
this[_first] = first$;
this[_second] = second;
@@ -485,7 +521,7 @@ var convert;
}
return _FusedConverter;
});
- let _FusedConverter = _FusedConverter$(dart.dynamic, dart.dynamic, dart.dynamic);
+ dart.defineLazyClassGeneric(exports, '_FusedConverter', {get: _FusedConverter$});
let HTML_ESCAPE = new HtmlEscape();
let _$ = Symbol('_');
let _name = Symbol('_name');
@@ -506,81 +542,86 @@ var convert;
HtmlEscapeMode.ATTRIBUTE = new HtmlEscapeMode[_$]('attribute', false, true, false, false);
HtmlEscapeMode.ELEMENT = new HtmlEscapeMode[_$]('element', true, false, false, true);
let _convert = Symbol('_convert');
- class HtmlEscape extends Converter$(core.String, core.String) {
- HtmlEscape(mode) {
- if (mode === void 0)
- mode = HtmlEscapeMode.UNKNOWN;
- this.mode = mode;
- super.Converter();
- }
- convert(text) {
- let val = this[_convert](text, 0, text.length);
- return val == null ? text : val;
- }
- [_convert](text, start, end) {
- let result = null;
- for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
- let ch = text.get(i);
- let replace = null;
- switch (ch) {
- case '&':
- {
- replace = '&amp;';
- break;
- }
- case ' ':
- {
- replace = '&nbsp;';
- break;
- }
- case '"':
- {
- if (this.mode.escapeQuot)
- replace = '&quot;';
- break;
- }
- case "'":
- {
- if (this.mode.escapeApos)
- replace = '&#x27;';
- break;
- }
- case '<':
- {
- if (this.mode.escapeLtGt)
- replace = '&lt;';
- break;
- }
- case '>':
- {
- if (this.mode.escapeLtGt)
- replace = '&gt;';
- break;
- }
- case '/':
- {
- if (this.mode.escapeSlash)
- replace = '&#x2F;';
- break;
+ dart.defineLazyClass(exports, {
+ get HtmlEscape() {
+ class HtmlEscape extends exports.Converter$(core.String, core.String) {
+ HtmlEscape(mode) {
+ if (mode === void 0)
+ mode = HtmlEscapeMode.UNKNOWN;
+ this.mode = mode;
+ super.Converter();
+ }
+ convert(text) {
+ let val = this[_convert](text, 0, text.length);
+ return val == null ? text : val;
+ }
+ [_convert](text, start, end) {
+ let result = null;
+ for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
+ let ch = text.get(i);
+ let replace = null;
+ switch (ch) {
+ case '&':
+ {
+ replace = '&amp;';
+ break;
+ }
+ case ' ':
+ {
+ replace = '&nbsp;';
+ break;
+ }
+ case '"':
+ {
+ if (this.mode.escapeQuot)
+ replace = '&quot;';
+ break;
+ }
+ case "'":
+ {
+ if (this.mode.escapeApos)
+ replace = '&#x27;';
+ break;
+ }
+ case '<':
+ {
+ if (this.mode.escapeLtGt)
+ replace = '&lt;';
+ break;
+ }
+ case '>':
+ {
+ if (this.mode.escapeLtGt)
+ replace = '&gt;';
+ break;
+ }
+ case '/':
+ {
+ if (this.mode.escapeSlash)
+ replace = '&#x2F;';
+ break;
+ }
+ }
+ if (replace != null) {
+ if (result == null)
+ result = new core.StringBuffer(text.substring(start, i));
+ result.write(replace);
+ } else if (result != null) {
+ result.write(ch);
+ }
}
+ return result != null ? result.toString() : null;
}
- if (replace != null) {
- if (result == null)
- result = new core.StringBuffer(text.substring(start, i));
- result.write(replace);
- } else if (result != null) {
- result.write(ch);
+ startChunkedConversion(sink) {
+ if (!dart.is(sink, StringConversionSink)) {
+ sink = new StringConversionSink.from(sink);
+ }
+ return new _HtmlEscapeSink(this, dart.as(sink, StringConversionSink));
}
}
- return result != null ? result.toString() : null;
- }
- startChunkedConversion(sink) {
- if (!dart.is(sink, StringConversionSink)) {
- sink = new StringConversionSink.from(sink);
- }
- return new _HtmlEscapeSink(this, dart.as(sink, StringConversionSink));
+ return HtmlEscape;
}
- }
+ });
let _escape = Symbol('_escape');
class _HtmlEscapeSink extends StringConversionSinkBase {
_HtmlEscapeSink(escape, sink$) {
@@ -667,116 +708,126 @@ var convert;
}
}
dart.defineNamedConstructor(JsonCodec, 'withReviver');
- class JsonEncoder extends Converter$(core.Object, core.String) {
- JsonEncoder(toEncodable) {
- if (toEncodable === void 0)
- toEncodable = null;
- this.indent = null;
- this[_toEncodable$] = toEncodable;
- super.Converter();
- }
- withIndent(indent, toEncodable) {
- if (toEncodable === void 0)
- toEncodable = null;
- this.indent = indent;
- this[_toEncodable$] = toEncodable;
- super.Converter();
- }
- convert(object) {
- return _JsonStringStringifier.stringify(object, dart.as(this[_toEncodable$], dart.throw_("Unimplemented type (dynamic) → dynamic")), this.indent);
- }
- startChunkedConversion(sink) {
- if (!dart.is(sink, StringConversionSink)) {
- sink = new StringConversionSink.from(sink);
- } else if (dart.is(sink, _Utf8EncoderSink)) {
- return new _JsonUtf8EncoderSink(sink[_sink], this[_toEncodable$], JsonUtf8Encoder._utf8Encode(this.indent), JsonUtf8Encoder.DEFAULT_BUFFER_SIZE);
- }
- return new _JsonEncoderSink(dart.as(sink, StringConversionSink), this[_toEncodable$], this.indent);
- }
- bind(stream) {
- return dart.as(super.bind(stream), async.Stream$(core.String));
- }
- fuse(other) {
- if (dart.is(other, Utf8Encoder)) {
- return new JsonUtf8Encoder(this.indent, dart.as(this[_toEncodable$], dart.throw_("Unimplemented type (Object) → dynamic")));
+ dart.defineLazyClass(exports, {
+ get JsonEncoder() {
+ class JsonEncoder extends exports.Converter$(core.Object, core.String) {
+ JsonEncoder(toEncodable) {
+ if (toEncodable === void 0)
+ toEncodable = null;
+ this.indent = null;
+ this[_toEncodable$] = toEncodable;
+ super.Converter();
+ }
+ withIndent(indent, toEncodable) {
+ if (toEncodable === void 0)
+ toEncodable = null;
+ this.indent = indent;
+ this[_toEncodable$] = toEncodable;
+ super.Converter();
+ }
+ convert(object) {
+ return _JsonStringStringifier.stringify(object, dart.as(this[_toEncodable$], dart.throw_("Unimplemented type (dynamic) → dynamic")), this.indent);
+ }
+ startChunkedConversion(sink) {
+ if (!dart.is(sink, StringConversionSink)) {
+ sink = new StringConversionSink.from(sink);
+ } else if (dart.is(sink, _Utf8EncoderSink)) {
+ return new _JsonUtf8EncoderSink(sink[_sink], this[_toEncodable$], JsonUtf8Encoder._utf8Encode(this.indent), JsonUtf8Encoder.DEFAULT_BUFFER_SIZE);
+ }
+ return new _JsonEncoderSink(dart.as(sink, StringConversionSink), this[_toEncodable$], this.indent);
+ }
+ bind(stream) {
+ return dart.as(super.bind(stream), async.Stream$(core.String));
+ }
+ fuse(other) {
+ if (dart.is(other, exports.Utf8Encoder)) {
+ return new JsonUtf8Encoder(this.indent, dart.as(this[_toEncodable$], dart.throw_("Unimplemented type (Object) → dynamic")));
+ }
+ return super.fuse(other);
+ }
}
- return super.fuse(other);
+ dart.defineNamedConstructor(JsonEncoder, 'withIndent');
+ return JsonEncoder;
}
- }
- dart.defineNamedConstructor(JsonEncoder, 'withIndent');
+ });
let _indent = Symbol('_indent');
let _utf8Encode = Symbol('_utf8Encode');
let _bufferSize = Symbol('_bufferSize');
- class JsonUtf8Encoder extends Converter$(core.Object, core.List$(core.int)) {
- JsonUtf8Encoder(indent, toEncodable, bufferSize) {
- if (indent === void 0)
- indent = null;
- if (toEncodable === void 0)
- toEncodable = null;
- if (bufferSize === void 0)
- bufferSize = JsonUtf8Encoder.DEFAULT_BUFFER_SIZE;
- this[_indent] = JsonUtf8Encoder[_utf8Encode](indent);
- this[_toEncodable$] = toEncodable;
- this[_bufferSize] = bufferSize;
- super.Converter();
- }
- static [_utf8Encode](string) {
- if (string == null)
- return null;
- if (string.isEmpty)
- return new typed_data.Uint8List(0);
- checkAscii: {
- for (let i = 0; dart.notNull(i) < dart.notNull(string.length); i = dart.notNull(i) + 1) {
- if (dart.notNull(string.codeUnitAt(i)) >= 128)
- break checkAscii;
- }
- return string.codeUnits;
- }
- return UTF8.encode(string);
- }
- convert(object) {
- let bytes = dart.as(new core.List.from([]), core.List$(core.List$(core.int)));
- // Function addChunk: (Uint8List, int, int) → void
- function addChunk(chunk, start, end) {
- if (dart.notNull(start) > 0 || dart.notNull(end) < dart.notNull(chunk.length)) {
- let length = dart.notNull(end) - dart.notNull(start);
- chunk = new typed_data.Uint8List.view(chunk.buffer, dart.notNull(chunk.offsetInBytes) + dart.notNull(start), length);
+ dart.defineLazyClass(exports, {
+ get JsonUtf8Encoder() {
+ class JsonUtf8Encoder extends exports.Converter$(core.Object, core.List$(core.int)) {
+ JsonUtf8Encoder(indent, toEncodable, bufferSize) {
+ if (indent === void 0)
+ indent = null;
+ if (toEncodable === void 0)
+ toEncodable = null;
+ if (bufferSize === void 0)
+ bufferSize = JsonUtf8Encoder.DEFAULT_BUFFER_SIZE;
+ this[_indent] = JsonUtf8Encoder[_utf8Encode](indent);
+ this[_toEncodable$] = toEncodable;
+ this[_bufferSize] = bufferSize;
+ super.Converter();
+ }
+ static [_utf8Encode](string) {
+ if (string == null)
+ return null;
+ if (string.isEmpty)
+ return new typed_data.Uint8List(0);
+ checkAscii: {
+ for (let i = 0; dart.notNull(i) < dart.notNull(string.length); i = dart.notNull(i) + 1) {
+ if (dart.notNull(string.codeUnitAt(i)) >= 128)
+ break checkAscii;
+ }
+ return string.codeUnits;
+ }
+ return UTF8.encode(string);
+ }
+ convert(object) {
+ let bytes = dart.as(new core.List.from([]), core.List$(core.List$(core.int)));
+ // Function addChunk: (Uint8List, int, int) → void
+ function addChunk(chunk, start, end) {
+ if (dart.notNull(start) > 0 || dart.notNull(end) < dart.notNull(chunk.length)) {
+ let length = dart.notNull(end) - dart.notNull(start);
+ chunk = new typed_data.Uint8List.view(chunk.buffer, dart.notNull(chunk.offsetInBytes) + dart.notNull(start), length);
+ }
+ bytes.add(chunk);
+ }
+ _JsonUtf8Stringifier.stringify(object, this[_indent], dart.as(this[_toEncodable$], dart.throw_("Unimplemented type (Object) → dynamic")), this[_bufferSize], addChunk);
+ if (bytes.length == 1)
+ return bytes.get(0);
+ let length = 0;
+ for (let i = 0; dart.notNull(i) < dart.notNull(bytes.length); i = dart.notNull(i) + 1) {
+ length = bytes.get(i).length;
+ }
+ let result = new typed_data.Uint8List(length);
+ for (let i = 0, offset = 0; dart.notNull(i) < dart.notNull(bytes.length); i = dart.notNull(i) + 1) {
+ let byteList = bytes.get(i);
+ let end = dart.notNull(offset) + dart.notNull(byteList.length);
+ result.setRange(offset, end, byteList);
+ offset = end;
+ }
+ return result;
+ }
+ startChunkedConversion(sink) {
+ let byteSink = null;
+ if (dart.is(sink, ByteConversionSink)) {
+ byteSink = sink;
+ } else {
+ byteSink = new ByteConversionSink.from(sink);
+ }
+ return new _JsonUtf8EncoderSink(byteSink, this[_toEncodable$], this[_indent], this[_bufferSize]);
+ }
+ bind(stream) {
+ return dart.as(super.bind(stream), async.Stream$(core.List$(core.int)));
+ }
+ fuse(other) {
+ return super.fuse(other);
}
- bytes.add(chunk);
- }
- _JsonUtf8Stringifier.stringify(object, this[_indent], dart.as(this[_toEncodable$], dart.throw_("Unimplemented type (Object) → dynamic")), this[_bufferSize], addChunk);
- if (bytes.length == 1)
- return bytes.get(0);
- let length = 0;
- for (let i = 0; dart.notNull(i) < dart.notNull(bytes.length); i = dart.notNull(i) + 1) {
- length = bytes.get(i).length;
- }
- let result = new typed_data.Uint8List(length);
- for (let i = 0, offset = 0; dart.notNull(i) < dart.notNull(bytes.length); i = dart.notNull(i) + 1) {
- let byteList = bytes.get(i);
- let end = dart.notNull(offset) + dart.notNull(byteList.length);
- result.setRange(offset, end, byteList);
- offset = end;
- }
- return result;
- }
- startChunkedConversion(sink) {
- let byteSink = null;
- if (dart.is(sink, ByteConversionSink)) {
- byteSink = sink;
- } else {
- byteSink = new ByteConversionSink.from(sink);
}
- return new _JsonUtf8EncoderSink(byteSink, this[_toEncodable$], this[_indent], this[_bufferSize]);
+ JsonUtf8Encoder.DEFAULT_BUFFER_SIZE = 256;
+ return JsonUtf8Encoder;
}
- bind(stream) {
- return dart.as(super.bind(stream), async.Stream$(core.List$(core.int)));
- }
- fuse(other) {
- return super.fuse(other);
- }
- }
- JsonUtf8Encoder.DEFAULT_BUFFER_SIZE = 256;
+ });
let _isDone = Symbol('_isDone');
class _JsonEncoderSink extends ChunkedConversionSink$(core.Object) {
_JsonEncoderSink(sink$, toEncodable$, indent$) {
@@ -825,23 +876,28 @@ var convert;
}
}
}
- class JsonDecoder extends Converter$(core.String, core.Object) {
- JsonDecoder(reviver) {
- if (reviver === void 0)
- reviver = null;
- this[_reviver] = reviver;
- super.Converter();
- }
- convert(input) {
- return _parseJson(input, this[_reviver]);
- }
- startChunkedConversion(sink) {
- return new _JsonDecoderSink(this[_reviver], sink);
- }
- bind(stream) {
- return super.bind(stream);
+ dart.defineLazyClass(exports, {
+ get JsonDecoder() {
+ class JsonDecoder extends exports.Converter$(core.String, core.Object) {
+ JsonDecoder(reviver) {
+ if (reviver === void 0)
+ reviver = null;
+ this[_reviver] = reviver;
+ super.Converter();
+ }
+ convert(input) {
+ return _parseJson(input, this[_reviver]);
+ }
+ startChunkedConversion(sink) {
+ return new _JsonDecoderSink(this[_reviver], sink);
+ }
+ bind(stream) {
+ return super.bind(stream);
+ }
+ }
+ return JsonDecoder;
}
- }
+ });
// Function _parseJson: (String, (dynamic, dynamic) → dynamic) → dynamic
function _parseJson(source, reviver) {
if (!(typeof source == 'string'))
@@ -1281,28 +1337,38 @@ var convert;
return this[_allowInvalid] ? new Latin1Decoder({allowInvalid: true}) : new Latin1Decoder({allowInvalid: false});
}
}
- class Latin1Encoder extends _UnicodeSubsetEncoder {
- Latin1Encoder() {
- super._UnicodeSubsetEncoder(_LATIN1_MASK);
- }
- }
- class Latin1Decoder extends _UnicodeSubsetDecoder {
- Latin1Decoder(opts) {
- let allowInvalid = opts && 'allowInvalid' in opts ? opts.allowInvalid : false;
- super._UnicodeSubsetDecoder(allowInvalid, _LATIN1_MASK);
+ dart.defineLazyClass(exports, {
+ get Latin1Encoder() {
+ class Latin1Encoder extends exports._UnicodeSubsetEncoder {
+ Latin1Encoder() {
+ super._UnicodeSubsetEncoder(_LATIN1_MASK);
+ }
+ }
+ return Latin1Encoder;
}
- startChunkedConversion(sink) {
- let stringSink = null;
- if (dart.is(sink, StringConversionSink)) {
- stringSink = sink;
- } else {
- stringSink = new StringConversionSink.from(sink);
+ });
+ dart.defineLazyClass(exports, {
+ get Latin1Decoder() {
+ class Latin1Decoder extends exports._UnicodeSubsetDecoder {
+ Latin1Decoder(opts) {
+ let allowInvalid = opts && 'allowInvalid' in opts ? opts.allowInvalid : false;
+ super._UnicodeSubsetDecoder(allowInvalid, _LATIN1_MASK);
+ }
+ startChunkedConversion(sink) {
+ let stringSink = null;
+ if (dart.is(sink, StringConversionSink)) {
+ stringSink = sink;
+ } else {
+ stringSink = new StringConversionSink.from(sink);
+ }
+ if (!dart.notNull(this[_allowInvalid]))
+ return new _Latin1DecoderSink(stringSink);
+ return new _Latin1AllowInvalidDecoderSink(stringSink);
+ }
}
- if (!dart.notNull(this[_allowInvalid]))
- return new _Latin1DecoderSink(stringSink);
- return new _Latin1AllowInvalidDecoderSink(stringSink);
+ return Latin1Decoder;
}
- }
+ });
let _addSliceToSink = Symbol('_addSliceToSink');
class _Latin1DecoderSink extends ByteConversionSinkBase {
_Latin1DecoderSink(sink$) {
@@ -1359,22 +1425,27 @@ var convert;
}
}
}
- class LineSplitter extends Converter$(core.String, core.List$(core.String)) {
- LineSplitter() {
- super.Converter();
- }
- convert(data) {
- let lines = new core.List();
- _LineSplitterSink._addSlice(data, 0, data.length, true, lines.add);
- return lines;
- }
- startChunkedConversion(sink) {
- if (!dart.is(sink, StringConversionSink)) {
- sink = new StringConversionSink.from(sink);
+ dart.defineLazyClass(exports, {
+ get LineSplitter() {
+ class LineSplitter extends exports.Converter$(core.String, core.List$(core.String)) {
+ LineSplitter() {
+ super.Converter();
+ }
+ convert(data) {
+ let lines = new core.List();
+ _LineSplitterSink._addSlice(data, 0, data.length, true, lines.add);
+ return lines;
+ }
+ startChunkedConversion(sink) {
+ if (!dart.is(sink, StringConversionSink)) {
+ sink = new StringConversionSink.from(sink);
+ }
+ return new _LineSplitterSink(dart.as(sink, StringConversionSink));
+ }
}
- return new _LineSplitterSink(dart.as(sink, StringConversionSink));
+ return LineSplitter;
}
- }
+ });
let _carry = Symbol('_carry');
let _addSlice = Symbol('_addSlice');
let _LF = Symbol('_LF');
@@ -1436,23 +1507,6 @@ var convert;
}
_LineSplitterSink._LF = 10;
_LineSplitterSink._CR = 13;
- class StringConversionSink extends ChunkedConversionSink$(core.String) {
- StringConversionSink() {
- super.ChunkedConversionSink();
- }
- withCallback(callback) {
- return new _StringCallbackSink(callback);
- }
- from(sink) {
- return new _StringAdapterSink(sink);
- }
- fromStringSink(sink) {
- return new _StringSinkConversionSink(sink);
- }
- }
- dart.defineNamedConstructor(StringConversionSink, 'withCallback');
- dart.defineNamedConstructor(StringConversionSink, 'from');
- dart.defineNamedConstructor(StringConversionSink, 'fromStringSink');
class ClosableStringSink extends core.StringSink {
fromStringSink(sink, onClose) {
return new _ClosableStringSink(sink, onClose);
@@ -1690,43 +1744,48 @@ var convert;
return new Utf8Decoder({allowMalformed: this[_allowMalformed]});
}
}
- class Utf8Encoder extends Converter$(core.String, core.List$(core.int)) {
- Utf8Encoder() {
- super.Converter();
- }
- convert(string, start, end) {
- if (start === void 0)
- start = 0;
- if (end === void 0)
- end = null;
- let stringLength = string.length;
- core.RangeError.checkValidRange(start, end, stringLength);
- if (end == null)
- end = stringLength;
- let length = dart.notNull(end) - dart.notNull(start);
- if (length == 0)
- return new typed_data.Uint8List(0);
- let encoder = new _Utf8Encoder.withBufferSize(dart.notNull(length) * 3);
- let endPosition = encoder._fillBuffer(string, start, end);
- dart.assert(dart.notNull(endPosition) >= dart.notNull(end) - 1);
- if (endPosition != end) {
- let lastCodeUnit = string.codeUnitAt(dart.notNull(end) - 1);
- dart.assert(_isLeadSurrogate(lastCodeUnit));
- let wasCombined = encoder._writeSurrogate(lastCodeUnit, 0);
- dart.assert(!dart.notNull(wasCombined));
- }
- return encoder[_buffer].sublist(0, encoder[_bufferIndex]);
- }
- startChunkedConversion(sink) {
- if (!dart.is(sink, ByteConversionSink)) {
- sink = new ByteConversionSink.from(sink);
- }
- return new _Utf8EncoderSink(dart.as(sink, ByteConversionSink));
- }
- bind(stream) {
- return dart.as(super.bind(stream), async.Stream$(core.List$(core.int)));
+ dart.defineLazyClass(exports, {
+ get Utf8Encoder() {
+ class Utf8Encoder extends exports.Converter$(core.String, core.List$(core.int)) {
+ Utf8Encoder() {
+ super.Converter();
+ }
+ convert(string, start, end) {
+ if (start === void 0)
+ start = 0;
+ if (end === void 0)
+ end = null;
+ let stringLength = string.length;
+ core.RangeError.checkValidRange(start, end, stringLength);
+ if (end == null)
+ end = stringLength;
+ let length = dart.notNull(end) - dart.notNull(start);
+ if (length == 0)
+ return new typed_data.Uint8List(0);
+ let encoder = new _Utf8Encoder.withBufferSize(dart.notNull(length) * 3);
+ let endPosition = encoder._fillBuffer(string, start, end);
+ dart.assert(dart.notNull(endPosition) >= dart.notNull(end) - 1);
+ if (endPosition != end) {
+ let lastCodeUnit = string.codeUnitAt(dart.notNull(end) - 1);
+ dart.assert(_isLeadSurrogate(lastCodeUnit));
+ let wasCombined = encoder._writeSurrogate(lastCodeUnit, 0);
+ dart.assert(!dart.notNull(wasCombined));
+ }
+ return encoder[_buffer].sublist(0, encoder[_bufferIndex]);
+ }
+ startChunkedConversion(sink) {
+ if (!dart.is(sink, ByteConversionSink)) {
+ sink = new ByteConversionSink.from(sink);
+ }
+ return new _Utf8EncoderSink(dart.as(sink, ByteConversionSink));
+ }
+ bind(stream) {
+ return dart.as(super.bind(stream), async.Stream$(core.List$(core.int)));
+ }
+ }
+ return Utf8Encoder;
}
- }
+ });
let _DEFAULT_BYTE_BUFFER_SIZE = Symbol('_DEFAULT_BYTE_BUFFER_SIZE');
let _createBuffer = Symbol('_createBuffer');
let _writeSurrogate = Symbol('_writeSurrogate');
@@ -1849,43 +1908,48 @@ var convert;
this.close();
}
}
- class Utf8Decoder extends Converter$(core.List$(core.int), core.String) {
- Utf8Decoder(opts) {
- let allowMalformed = opts && 'allowMalformed' in opts ? opts.allowMalformed : false;
- this[_allowMalformed] = allowMalformed;
- super.Converter();
- }
- convert(codeUnits, start, end) {
- if (start === void 0)
- start = 0;
- if (end === void 0)
- end = null;
- let length = codeUnits.length;
- core.RangeError.checkValidRange(start, end, length);
- if (end == null)
- end = length;
- let buffer = new core.StringBuffer();
- let decoder = new _Utf8Decoder(buffer, this[_allowMalformed]);
- decoder.convert(codeUnits, start, end);
- decoder.close();
- return buffer.toString();
- }
- startChunkedConversion(sink) {
- let stringSink = null;
- if (dart.is(sink, StringConversionSink)) {
- stringSink = sink;
- } else {
- stringSink = new StringConversionSink.from(sink);
+ dart.defineLazyClass(exports, {
+ get Utf8Decoder() {
+ class Utf8Decoder extends exports.Converter$(core.List$(core.int), core.String) {
+ Utf8Decoder(opts) {
+ let allowMalformed = opts && 'allowMalformed' in opts ? opts.allowMalformed : false;
+ this[_allowMalformed] = allowMalformed;
+ super.Converter();
+ }
+ convert(codeUnits, start, end) {
+ if (start === void 0)
+ start = 0;
+ if (end === void 0)
+ end = null;
+ let length = codeUnits.length;
+ core.RangeError.checkValidRange(start, end, length);
+ if (end == null)
+ end = length;
+ let buffer = new core.StringBuffer();
+ let decoder = new _Utf8Decoder(buffer, this[_allowMalformed]);
+ decoder.convert(codeUnits, start, end);
+ decoder.close();
+ return buffer.toString();
+ }
+ startChunkedConversion(sink) {
+ let stringSink = null;
+ if (dart.is(sink, StringConversionSink)) {
+ stringSink = sink;
+ } else {
+ stringSink = new StringConversionSink.from(sink);
+ }
+ return stringSink.asUtf8Sink(this[_allowMalformed]);
+ }
+ bind(stream) {
+ return dart.as(super.bind(stream), async.Stream$(core.String));
+ }
+ fuse(next) {
+ return super.fuse(next);
+ }
}
- return stringSink.asUtf8Sink(this[_allowMalformed]);
- }
- bind(stream) {
- return dart.as(super.bind(stream), async.Stream$(core.String));
- }
- fuse(next) {
- return super.fuse(next);
+ return Utf8Decoder;
}
- }
+ });
let _ONE_BYTE_LIMIT = 127;
let _TWO_BYTE_LIMIT = 2047;
let _THREE_BYTE_LIMIT = 65535;
@@ -2335,37 +2399,24 @@ var convert;
exports.Encoding = Encoding;
exports.Codec = Codec;
exports.Codec$ = Codec$;
- exports.Converter = Converter;
- exports.Converter$ = Converter$;
- exports.AsciiEncoder = AsciiEncoder;
exports.StringConversionSinkBase = StringConversionSinkBase;
exports.StringConversionSinkMixin = StringConversionSinkMixin;
- exports.AsciiDecoder = AsciiDecoder;
- exports.ByteConversionSinkBase = ByteConversionSinkBase;
- exports.ByteConversionSink = ByteConversionSink;
+ exports.StringConversionSink = StringConversionSink;
exports.ChunkedConversionSink = ChunkedConversionSink;
exports.ChunkedConversionSink$ = ChunkedConversionSink$;
+ exports.ByteConversionSinkBase = ByteConversionSinkBase;
+ exports.ByteConversionSink = ByteConversionSink;
exports.HTML_ESCAPE = HTML_ESCAPE;
exports.HtmlEscapeMode = HtmlEscapeMode;
- exports.HtmlEscape = HtmlEscape;
exports.JsonUnsupportedObjectError = JsonUnsupportedObjectError;
exports.JsonCyclicError = JsonCyclicError;
exports.JSON = JSON;
exports.JsonCodec = JsonCodec;
- exports.JsonEncoder = JsonEncoder;
- exports.JsonUtf8Encoder = JsonUtf8Encoder;
- exports.JsonDecoder = JsonDecoder;
exports.LATIN1 = LATIN1;
exports.Latin1Codec = Latin1Codec;
- exports.Latin1Encoder = Latin1Encoder;
- exports.Latin1Decoder = Latin1Decoder;
- exports.LineSplitter = LineSplitter;
- exports.StringConversionSink = StringConversionSink;
exports.ClosableStringSink = ClosableStringSink;
exports.UNICODE_REPLACEMENT_CHARACTER_RUNE = UNICODE_REPLACEMENT_CHARACTER_RUNE;
exports.UNICODE_BOM_CHARACTER_RUNE = UNICODE_BOM_CHARACTER_RUNE;
exports.UTF8 = UTF8;
exports.Utf8Codec = Utf8Codec;
- exports.Utf8Encoder = Utf8Encoder;
- exports.Utf8Decoder = Utf8Decoder;
})(convert || (convert = {}));
« 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