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

Side by Side Diff: test/codegen/expect/convert/convert.js

Issue 962083002: support the JS builtin (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: formatting 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 unified diff | Download patch
OLDNEW
1 var convert; 1 var convert;
2 (function(convert) { 2 (function(convert) {
3 'use strict'; 3 'use strict';
4 // Function _convertJsonToDart: (dynamic, (dynamic, dynamic) → dynamic) → dyna mic 4 // Function _convertJsonToDart: (dynamic, (dynamic, dynamic) → dynamic) → dyna mic
5 function _convertJsonToDart(json, reviver) { 5 function _convertJsonToDart(json, reviver) {
6 dart.assert(reviver !== null); 6 dart.assert(reviver !== null);
7 // Function walk: (dynamic) → dynamic 7 // Function walk: (dynamic) → dynamic
8 function walk(e) { 8 function walk(e) {
9 if (dart.dbinary(_foreign_helper.JS('bool', '# == null', e), '||', _foreig n_helper.JS('bool', 'typeof # != "object"', e))) { 9 if (dart.notNull(e == null) || dart.notNull(typeof e != "object")) {
Jennifer Messerly 2015/02/27 14:59:23 it'd be nice to understand this is not null, too.
10 return e; 10 return e;
11 } 11 }
12 if (_foreign_helper.JS('bool', 'Object.getPrototypeOf(#) === Array.prototy pe', e)) { 12 if (Object.getPrototypeOf(e) === Array.prototype) {
13 for (let i = 0; i['<'](_foreign_helper.JS('int', '#.length', e)); i++) { 13 for (let i = 0; i < e.length; i++) {
14 let item = _foreign_helper.JS('', '#[#]', e, i); 14 let item = e[i];
15 _foreign_helper.JS('', '#[#]=#', e, i, reviver(i, walk(item))); 15 e[i] = reviver(i, walk(item));
16 } 16 }
17 return e; 17 return e;
18 } 18 }
19 let map = new _JsonMap(e); 19 let map = new _JsonMap(e);
20 let processed = map._processed; 20 let processed = map._processed;
21 let keys = map._computeKeys(); 21 let keys = map._computeKeys();
22 for (let i = 0; i < keys.length; i++) { 22 for (let i = 0; i < keys.length; i++) {
23 let key = keys.get(i); 23 let key = keys.get(i);
24 let revived = reviver(key, walk(_foreign_helper.JS('', '#[#]', e, key))) ; 24 let revived = reviver(key, walk(e[key]));
25 _foreign_helper.JS('', '#[#]=#', processed, key, revived); 25 processed[key] = revived;
26 } 26 }
27 map._original = processed; 27 map._original = processed;
28 return map; 28 return map;
29 } 29 }
30 return reviver(null, walk(json)); 30 return reviver(null, walk(json));
31 } 31 }
32 // Function _convertJsonToDartLazy: (dynamic) → dynamic 32 // Function _convertJsonToDartLazy: (dynamic) → dynamic
33 function _convertJsonToDartLazy(object) { 33 function _convertJsonToDartLazy(object) {
34 if (object === null) 34 if (object === null)
35 return null; 35 return null;
36 if (_foreign_helper.JS('bool', 'typeof # != "object"', object)) { 36 if (typeof object != "object") {
37 return object; 37 return object;
38 } 38 }
39 if (_foreign_helper.JS('bool', 'Object.getPrototypeOf(#) !== Array.prototype ', object)) { 39 if (Object.getPrototypeOf(object) !== Array.prototype) {
40 return new _JsonMap(object); 40 return new _JsonMap(object);
41 } 41 }
42 for (let i = 0; i['<'](_foreign_helper.JS('int', '#.length', object)); i++) { 42 for (let i = 0; i < object.length; i++) {
43 let item = _foreign_helper.JS('', '#[#]', object, i); 43 let item = object[i];
44 _foreign_helper.JS('', '#[#]=#', object, i, _convertJsonToDartLazy(item)); 44 object[i] = _convertJsonToDartLazy(item);
45 } 45 }
46 return object; 46 return object;
47 } 47 }
48 class _JsonMap extends dart.Object { 48 class _JsonMap extends dart.Object {
49 _JsonMap(_original) { 49 _JsonMap(_original) {
50 this._processed = _newJavaScriptObject(); 50 this._processed = _newJavaScriptObject();
51 this._original = _original; 51 this._original = _original;
52 this._data = null; 52 this._data = null;
53 } 53 }
54 get(key) { 54 get(key) {
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 } 160 }
161 } 161 }
162 toString() { 162 toString() {
163 return collection.Maps.mapToString(this); 163 return collection.Maps.mapToString(this);
164 } 164 }
165 get _isUpgraded() { 165 get _isUpgraded() {
166 return this._processed === null; 166 return this._processed === null;
167 } 167 }
168 get _upgradedMap() { 168 get _upgradedMap() {
169 dart.assert(this._isUpgraded); 169 dart.assert(this._isUpgraded);
170 return dart.as(_foreign_helper.JS('LinkedHashMap', '#', this._data), core. Map); 170 return dart.as(this._data, core.Map);
171 } 171 }
172 _computeKeys() { 172 _computeKeys() {
173 dart.assert(!dart.notNull(this._isUpgraded)); 173 dart.assert(!dart.notNull(this._isUpgraded));
174 let keys = dart.as(this._data, core.List); 174 let keys = dart.as(this._data, core.List);
175 if (keys === null) { 175 if (keys === null) {
176 keys = this._data = _getPropertyNames(this._original); 176 keys = this._data = _getPropertyNames(this._original);
177 } 177 }
178 return dart.as(_foreign_helper.JS('JSExtendableArray', '#', keys), core.Li st$(core.String)); 178 return dart.as(keys, core.List$(core.String));
179 } 179 }
180 _upgrade() { 180 _upgrade() {
181 if (this._isUpgraded) 181 if (this._isUpgraded)
182 return this._upgradedMap; 182 return this._upgradedMap;
183 let result = dart.map(); 183 let result = dart.map();
184 let keys = this._computeKeys(); 184 let keys = this._computeKeys();
185 for (let i = 0; i < keys.length; i++) { 185 for (let i = 0; i < keys.length; i++) {
186 let key = keys.get(i); 186 let key = keys.get(i);
187 result.set(key, this.get(key)); 187 result.set(key, this.get(key));
188 } 188 }
189 if (keys.isEmpty) { 189 if (keys.isEmpty) {
190 keys.add(null); 190 keys.add(null);
191 } else { 191 } else {
192 keys.clear(); 192 keys.clear();
193 } 193 }
194 this._original = this._processed = null; 194 this._original = this._processed = null;
195 this._data = result; 195 this._data = result;
196 dart.assert(this._isUpgraded); 196 dart.assert(this._isUpgraded);
197 return result; 197 return result;
198 } 198 }
199 _process(key) { 199 _process(key) {
200 if (!dart.notNull(_hasProperty(this._original, key))) 200 if (!dart.notNull(_hasProperty(this._original, key)))
201 return null; 201 return null;
202 let result = _convertJsonToDartLazy(_getProperty(this._original, key)); 202 let result = _convertJsonToDartLazy(_getProperty(this._original, key));
203 return _setProperty(this._processed, key, result); 203 return _setProperty(this._processed, key, result);
204 } 204 }
205 static _hasProperty(object, key) { 205 static _hasProperty(object, key) {
206 return dart.as(_foreign_helper.JS('bool', 'Object.prototype.hasOwnProperty .call(#,#)', object, key), core.bool); 206 return Object.prototype.hasOwnProperty.call(object, key);
207 } 207 }
208 static _getProperty(object, key) { 208 static _getProperty(object, key) {
209 return _foreign_helper.JS('', '#[#]', object, key); 209 return object[key];
210 } 210 }
211 static _setProperty(object, key, value) { 211 static _setProperty(object, key, value) {
212 return _foreign_helper.JS('', '#[#]=#', object, key, value); 212 return object[key] = value;
213 } 213 }
214 static _getPropertyNames(object) { 214 static _getPropertyNames(object) {
215 return dart.as(_foreign_helper.JS('JSExtendableArray', 'Object.keys(#)', o bject), core.List); 215 return dart.as(Object.keys(object), core.List);
216 } 216 }
217 static _isUnprocessed(object) { 217 static _isUnprocessed(object) {
218 return dart.as(_foreign_helper.JS('bool', 'typeof(#)=="undefined"', object ), core.bool); 218 return typeof object == "undefined";
219 } 219 }
220 static _newJavaScriptObject() { 220 static _newJavaScriptObject() {
221 return _foreign_helper.JS('=Object', 'Object.create(null)'); 221 return Object.create(null);
222 } 222 }
223 } 223 }
224 class _JsonMapKeyIterable extends _internal.ListIterable { 224 class _JsonMapKeyIterable extends _internal.ListIterable {
225 _JsonMapKeyIterable(_parent) { 225 _JsonMapKeyIterable(_parent) {
226 this._parent = _parent; 226 this._parent = _parent;
227 super.ListIterable(); 227 super.ListIterable();
228 } 228 }
229 get length() { 229 get length() {
230 return this._parent.length; 230 return this._parent.length;
231 } 231 }
(...skipping 803 matching lines...) Expand 10 before | Expand all | Expand 10 after
1035 bind(stream) { 1035 bind(stream) {
1036 return dart.as(super.bind(stream), async.Stream$(core.Object)); 1036 return dart.as(super.bind(stream), async.Stream$(core.Object));
1037 } 1037 }
1038 } 1038 }
1039 // Function _parseJson: (String, (dynamic, dynamic) → dynamic) → dynamic 1039 // Function _parseJson: (String, (dynamic, dynamic) → dynamic) → dynamic
1040 function _parseJson(source, reviver) { 1040 function _parseJson(source, reviver) {
1041 if (!(typeof source == string)) 1041 if (!(typeof source == string))
1042 throw new core.ArgumentError(source); 1042 throw new core.ArgumentError(source);
1043 let parsed = null; 1043 let parsed = null;
1044 try { 1044 try {
1045 parsed = _foreign_helper.JS('=Object|JSExtendableArray|Null|bool|num|Strin g', 'JSON.parse(#)', source); 1045 parsed = JSON.parse(source);
1046 } catch (e) { 1046 } catch (e) {
1047 throw new core.FormatException(dart.as(_foreign_helper.JS('String', 'Strin g(#)', e), core.String)); 1047 throw new core.FormatException(String(e));
1048 } 1048 }
1049 1049
1050 if (reviver === null) { 1050 if (reviver === null) {
1051 return _convertJsonToDartLazy(parsed); 1051 return _convertJsonToDartLazy(parsed);
1052 } else { 1052 } else {
1053 return _convertJsonToDart(parsed, reviver); 1053 return _convertJsonToDart(parsed, reviver);
1054 } 1054 }
1055 } 1055 }
1056 // Function _defaultToEncodable: (dynamic) → Object 1056 // Function _defaultToEncodable: (dynamic) → Object
1057 function _defaultToEncodable(object) { 1057 function _defaultToEncodable(object) {
(...skipping 1203 matching lines...) Expand 10 before | Expand all | Expand 10 after
2261 convert.ClosableStringSink = ClosableStringSink; 2261 convert.ClosableStringSink = ClosableStringSink;
2262 convert.StringConversionSinkBase = StringConversionSinkBase; 2262 convert.StringConversionSinkBase = StringConversionSinkBase;
2263 convert.StringConversionSinkMixin = StringConversionSinkMixin; 2263 convert.StringConversionSinkMixin = StringConversionSinkMixin;
2264 convert.UNICODE_REPLACEMENT_CHARACTER_RUNE = UNICODE_REPLACEMENT_CHARACTER_RUN E; 2264 convert.UNICODE_REPLACEMENT_CHARACTER_RUNE = UNICODE_REPLACEMENT_CHARACTER_RUN E;
2265 convert.UNICODE_BOM_CHARACTER_RUNE = UNICODE_BOM_CHARACTER_RUNE; 2265 convert.UNICODE_BOM_CHARACTER_RUNE = UNICODE_BOM_CHARACTER_RUNE;
2266 convert.UTF8 = UTF8; 2266 convert.UTF8 = UTF8;
2267 convert.Utf8Codec = Utf8Codec; 2267 convert.Utf8Codec = Utf8Codec;
2268 convert.Utf8Encoder = Utf8Encoder; 2268 convert.Utf8Encoder = Utf8Encoder;
2269 convert.Utf8Decoder = Utf8Decoder; 2269 convert.Utf8Decoder = Utf8Decoder;
2270 })(convert || (convert = {})); 2270 })(convert || (convert = {}));
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698