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

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

Issue 1132113003: fixes #177, FunctionDeclarationStatement and closing over `this` (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Created 5 years, 7 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
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.lazyImport(async); 3 var async = dart.lazyImport(async);
4 var typed_data = dart.lazyImport(typed_data); 4 var typed_data = dart.lazyImport(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 ASCII = dart.const(new AsciiCodec()); 9 let ASCII = dart.const(new AsciiCodec());
10 let _ASCII_MASK = 127; 10 let _ASCII_MASK = 127;
(...skipping 736 matching lines...) Expand 10 before | Expand all | Expand 10 after
747 if (dart.notNull(string.codeUnitAt(i)) >= 128) 747 if (dart.notNull(string.codeUnitAt(i)) >= 128)
748 break checkAscii; 748 break checkAscii;
749 } 749 }
750 return string.codeUnits; 750 return string.codeUnits;
751 } 751 }
752 return UTF8.encode(string); 752 return UTF8.encode(string);
753 } 753 }
754 convert(object) { 754 convert(object) {
755 let bytes = dart.setType([], core.List$(core.List$(core.int))); 755 let bytes = dart.setType([], core.List$(core.List$(core.int)));
756 // Function addChunk: (Uint8List, int, int) → void 756 // Function addChunk: (Uint8List, int, int) → void
757 function addChunk(chunk, start, end) { 757 let addChunk = (chunk, start, end) => {
758 if (dart.notNull(start) > 0 || dart.notNull(end) < dart.notNull(chunk[co re.$length])) { 758 if (dart.notNull(start) > 0 || dart.notNull(end) < dart.notNull(chunk[co re.$length])) {
759 let length = dart.notNull(end) - dart.notNull(start); 759 let length = dart.notNull(end) - dart.notNull(start);
760 chunk = new typed_data.Uint8List.view(chunk.buffer, dart.notNull(chunk .offsetInBytes) + dart.notNull(start), length); 760 chunk = new typed_data.Uint8List.view(chunk.buffer, dart.notNull(chunk .offsetInBytes) + dart.notNull(start), length);
761 } 761 }
762 bytes[core.$add](chunk); 762 bytes[core.$add](chunk);
763 } 763 };
764 _JsonUtf8Stringifier.stringify(object, this[_indent], dart.as(this[_toEnco dable$], dart.functionType(dart.dynamic, [core.Object])), this[_bufferSize], add Chunk); 764 _JsonUtf8Stringifier.stringify(object, this[_indent], dart.as(this[_toEnco dable$], dart.functionType(dart.dynamic, [core.Object])), this[_bufferSize], add Chunk);
765 if (bytes[core.$length] == 1) 765 if (bytes[core.$length] == 1)
766 return bytes[core.$get](0); 766 return bytes[core.$get](0);
767 let length = 0; 767 let length = 0;
768 for (let i = 0; dart.notNull(i) < dart.notNull(bytes[core.$length]); i = d art.notNull(i) + 1) { 768 for (let i = 0; dart.notNull(i) < dart.notNull(bytes[core.$length]); i = d art.notNull(i) + 1) {
769 length = dart.notNull(length) + dart.notNull(bytes[core.$get](i)[core.$l ength]); 769 length = dart.notNull(length) + dart.notNull(bytes[core.$get](i)[core.$l ength]);
770 } 770 }
771 let result = new typed_data.Uint8List(length); 771 let result = new typed_data.Uint8List(length);
772 for (let i = 0, offset = 0; dart.notNull(i) < dart.notNull(bytes[core.$len gth]); i = dart.notNull(i) + 1) { 772 for (let i = 0, offset = 0; dart.notNull(i) < dart.notNull(bytes[core.$len gth]); i = dart.notNull(i) + 1) {
773 let byteList = bytes[core.$get](i); 773 let byteList = bytes[core.$get](i);
(...skipping 1237 matching lines...) Expand 10 before | Expand all | Expand 10 after
2011 } 2011 }
2012 } 2012 }
2013 convert(codeUnits, startIndex, endIndex) { 2013 convert(codeUnits, startIndex, endIndex) {
2014 let value = this[_value]; 2014 let value = this[_value];
2015 let expectedUnits = this[_expectedUnits]; 2015 let expectedUnits = this[_expectedUnits];
2016 let extraUnits = this[_extraUnits]; 2016 let extraUnits = this[_extraUnits];
2017 this[_value] = 0; 2017 this[_value] = 0;
2018 this[_expectedUnits] = 0; 2018 this[_expectedUnits] = 0;
2019 this[_extraUnits] = 0; 2019 this[_extraUnits] = 0;
2020 // Function scanOneByteCharacters: (dynamic, int) → int 2020 // Function scanOneByteCharacters: (dynamic, int) → int
2021 function scanOneByteCharacters(units, from) { 2021 let scanOneByteCharacters = (units, from) => {
2022 let to = endIndex; 2022 let to = endIndex;
2023 let mask = _ONE_BYTE_LIMIT; 2023 let mask = _ONE_BYTE_LIMIT;
2024 for (let i = from; dart.notNull(i) < dart.notNull(to); i = dart.notNull( i) + 1) { 2024 for (let i = from; dart.notNull(i) < dart.notNull(to); i = dart.notNull( i) + 1) {
2025 let unit = dart.dindex(units, i); 2025 let unit = dart.dindex(units, i);
2026 if (!dart.equals(dart.dsend(unit, '&', mask), unit)) 2026 if (!dart.equals(dart.dsend(unit, '&', mask), unit))
2027 return dart.notNull(i) - dart.notNull(from); 2027 return dart.notNull(i) - dart.notNull(from);
2028 } 2028 }
2029 return dart.notNull(to) - dart.notNull(from); 2029 return dart.notNull(to) - dart.notNull(from);
2030 } 2030 };
2031 // Function addSingleBytes: (int, int) → void 2031 // Function addSingleBytes: (int, int) → void
2032 function addSingleBytes(from, to) { 2032 let addSingleBytes = ((from, to) => {
2033 dart.assert(dart.notNull(from) >= dart.notNull(startIndex) && dart.notNu ll(from) <= dart.notNull(endIndex)); 2033 dart.assert(dart.notNull(from) >= dart.notNull(startIndex) && dart.notNu ll(from) <= dart.notNull(endIndex));
2034 dart.assert(dart.notNull(to) >= dart.notNull(startIndex) && dart.notNull (to) <= dart.notNull(endIndex)); 2034 dart.assert(dart.notNull(to) >= dart.notNull(startIndex) && dart.notNull (to) <= dart.notNull(endIndex));
2035 this[_stringSink].write(new core.String.fromCharCodes(codeUnits, from, t o)); 2035 this[_stringSink].write(new core.String.fromCharCodes(codeUnits, from, t o));
2036 } 2036 }).bind(this);
2037 let i = startIndex; 2037 let i = startIndex;
2038 loop: 2038 loop:
2039 while (true) { 2039 while (true) {
2040 multibyte: 2040 multibyte:
2041 if (dart.notNull(expectedUnits) > 0) { 2041 if (dart.notNull(expectedUnits) > 0) {
2042 do { 2042 do {
2043 if (i == endIndex) { 2043 if (i == endIndex) {
2044 break loop; 2044 break loop;
2045 } 2045 }
2046 let unit = codeUnits[core.$get](i); 2046 let unit = codeUnits[core.$get](i);
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
2131 } 2131 }
2132 } 2132 }
2133 _Utf8Decoder._LIMITS = dart.const(dart.setType([_ONE_BYTE_LIMIT, _TWO_BYTE_LIM IT, _THREE_BYTE_LIMIT, _FOUR_BYTE_LIMIT], core.List$(core.int))); 2133 _Utf8Decoder._LIMITS = dart.const(dart.setType([_ONE_BYTE_LIMIT, _TWO_BYTE_LIM IT, _THREE_BYTE_LIMIT, _FOUR_BYTE_LIMIT], core.List$(core.int)));
2134 let _processed = Symbol('_processed'); 2134 let _processed = Symbol('_processed');
2135 let _computeKeys = Symbol('_computeKeys'); 2135 let _computeKeys = Symbol('_computeKeys');
2136 let _original = Symbol('_original'); 2136 let _original = Symbol('_original');
2137 // Function _convertJsonToDart: (dynamic, (dynamic, dynamic) → dynamic) → dyna mic 2137 // Function _convertJsonToDart: (dynamic, (dynamic, dynamic) → dynamic) → dyna mic
2138 function _convertJsonToDart(json, reviver) { 2138 function _convertJsonToDart(json, reviver) {
2139 dart.assert(reviver != null); 2139 dart.assert(reviver != null);
2140 // Function walk: (dynamic) → dynamic 2140 // Function walk: (dynamic) → dynamic
2141 function walk(e) { 2141 let walk = e => {
2142 if (e == null || typeof e != "object") { 2142 if (e == null || typeof e != "object") {
2143 return e; 2143 return e;
2144 } 2144 }
2145 if (Object.getPrototypeOf(e) === Array.prototype) { 2145 if (Object.getPrototypeOf(e) === Array.prototype) {
2146 for (let i = 0; dart.notNull(i) < e.length; i = dart.notNull(i) + 1) { 2146 for (let i = 0; dart.notNull(i) < e.length; i = dart.notNull(i) + 1) {
2147 let item = e[i]; 2147 let item = e[i];
2148 e[i] = dart.dcall(reviver, i, walk(item)); 2148 e[i] = dart.dcall(reviver, i, walk(item));
2149 } 2149 }
2150 return e; 2150 return e;
2151 } 2151 }
2152 let map = new _JsonMap(e); 2152 let map = new _JsonMap(e);
2153 let processed = map[_processed]; 2153 let processed = map[_processed];
2154 let keys = map[_computeKeys](); 2154 let keys = map[_computeKeys]();
2155 for (let i = 0; dart.notNull(i) < dart.notNull(keys[core.$length]); i = da rt.notNull(i) + 1) { 2155 for (let i = 0; dart.notNull(i) < dart.notNull(keys[core.$length]); i = da rt.notNull(i) + 1) {
2156 let key = keys[core.$get](i); 2156 let key = keys[core.$get](i);
2157 let revived = dart.dcall(reviver, key, walk(e[key])); 2157 let revived = dart.dcall(reviver, key, walk(e[key]));
2158 processed[key] = revived; 2158 processed[key] = revived;
2159 } 2159 }
2160 map[_original] = processed; 2160 map[_original] = processed;
2161 return map; 2161 return map;
2162 } 2162 };
2163 return dart.dcall(reviver, null, walk(json)); 2163 return dart.dcall(reviver, null, walk(json));
2164 } 2164 }
2165 // Function _convertJsonToDartLazy: (dynamic) → dynamic 2165 // Function _convertJsonToDartLazy: (dynamic) → dynamic
2166 function _convertJsonToDartLazy(object) { 2166 function _convertJsonToDartLazy(object) {
2167 if (object == null) 2167 if (object == null)
2168 return null; 2168 return null;
2169 if (typeof object != "object") { 2169 if (typeof object != "object") {
2170 return object; 2170 return object;
2171 } 2171 }
2172 if (Object.getPrototypeOf(object) !== Array.prototype) { 2172 if (Object.getPrototypeOf(object) !== Array.prototype) {
(...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after
2428 exports.LineSplitter = LineSplitter; 2428 exports.LineSplitter = LineSplitter;
2429 exports.StringConversionSink = StringConversionSink; 2429 exports.StringConversionSink = StringConversionSink;
2430 exports.ClosableStringSink = ClosableStringSink; 2430 exports.ClosableStringSink = ClosableStringSink;
2431 exports.UNICODE_REPLACEMENT_CHARACTER_RUNE = UNICODE_REPLACEMENT_CHARACTER_RUN E; 2431 exports.UNICODE_REPLACEMENT_CHARACTER_RUNE = UNICODE_REPLACEMENT_CHARACTER_RUN E;
2432 exports.UNICODE_BOM_CHARACTER_RUNE = UNICODE_BOM_CHARACTER_RUNE; 2432 exports.UNICODE_BOM_CHARACTER_RUNE = UNICODE_BOM_CHARACTER_RUNE;
2433 exports.UTF8 = UTF8; 2433 exports.UTF8 = UTF8;
2434 exports.Utf8Codec = Utf8Codec; 2434 exports.Utf8Codec = Utf8Codec;
2435 exports.Utf8Encoder = Utf8Encoder; 2435 exports.Utf8Encoder = Utf8Encoder;
2436 exports.Utf8Decoder = Utf8Decoder; 2436 exports.Utf8Decoder = Utf8Decoder;
2437 })(convert, core, async, typed_data, _internal, collection); 2437 })(convert, core, async, typed_data, _internal, collection);
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698