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

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

Issue 962083002: support the JS builtin (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 unified diff | Download patch
OLDNEW
1 var _interceptors; 1 var _interceptors;
2 (function(_interceptors) { 2 (function(_interceptors) {
3 'use strict'; 3 'use strict';
4 // Function _symbolToString: (Symbol) → String 4 // Function _symbolToString: (Symbol) → String
5 function _symbolToString(symbol) { 5 function _symbolToString(symbol) {
6 return _internal.Symbol.getName(dart.as(symbol, _internal.Symbol)); 6 return _internal.Symbol.getName(dart.as(symbol, _internal.Symbol));
7 } 7 }
8 // Function _symbolMapToStringMap: (Map<Symbol, dynamic>) → dynamic 8 // Function _symbolMapToStringMap: (Map<Symbol, dynamic>) → dynamic
9 function _symbolMapToStringMap(map) { 9 function _symbolMapToStringMap(map) {
10 if (map === null) 10 if (map === null)
11 return null; 11 return null;
12 let result = new core.Map(); 12 let result = new core.Map();
13 map.forEach((key, value) => { 13 map.forEach((key, value) => {
14 result.set(_symbolToString(key), value); 14 result.set(_symbolToString(key), value);
15 }); 15 });
16 return result; 16 return result;
17 } 17 }
18 // Function getInterceptor: (dynamic) → dynamic 18 // Function getInterceptor: (dynamic) → dynamic
19 function getInterceptor(object) { 19 function getInterceptor(object) {
20 return _foreign_helper.JS('', 'void 0'); 20 return void 0;
21 } 21 }
22 // Function getDispatchProperty: (dynamic) → dynamic 22 // Function getDispatchProperty: (dynamic) → dynamic
23 function getDispatchProperty(object) { 23 function getDispatchProperty(object) {
24 return _foreign_helper.JS('', '#[#]', object, _foreign_helper.JS_EMBEDDED_GL OBAL('String', dart.as(_js_embedded_names.DISPATCH_PROPERTY_NAME, core.String))) ; 24 return object[_foreign_helper.JS_EMBEDDED_GLOBAL('String', dart.as(_js_embed ded_names.DISPATCH_PROPERTY_NAME, core.String))];
25 } 25 }
26 // Function setDispatchProperty: (dynamic, dynamic) → dynamic 26 // Function setDispatchProperty: (dynamic, dynamic) → dynamic
27 function setDispatchProperty(object, value) { 27 function setDispatchProperty(object, value) {
28 _js_helper.defineProperty(object, dart.as(_foreign_helper.JS_EMBEDDED_GLOBAL ('String', dart.as(_js_embedded_names.DISPATCH_PROPERTY_NAME, core.String)), cor e.String), value); 28 _js_helper.defineProperty(object, dart.as(_foreign_helper.JS_EMBEDDED_GLOBAL ('String', dart.as(_js_embedded_names.DISPATCH_PROPERTY_NAME, core.String)), cor e.String), value);
29 } 29 }
30 // Function makeDispatchRecord: (dynamic, dynamic, dynamic, dynamic) → dynamic 30 // Function makeDispatchRecord: (dynamic, dynamic, dynamic, dynamic) → dynamic
31 function makeDispatchRecord(interceptor, proto, extension, indexability) { 31 function makeDispatchRecord(interceptor, proto, extension, indexability) {
32 return _foreign_helper.JS('', '{i: #, p: #, e: #, x: #}', interceptor, proto , extension, indexability); 32 return {i: interceptor, p: proto, e: extension, x: indexability};
33 } 33 }
34 // Function dispatchRecordInterceptor: (dynamic) → dynamic 34 // Function dispatchRecordInterceptor: (dynamic) → dynamic
35 function dispatchRecordInterceptor(record) { 35 function dispatchRecordInterceptor(record) {
36 return _foreign_helper.JS('', '#.i', record); 36 return record.i;
37 } 37 }
38 // Function dispatchRecordProto: (dynamic) → dynamic 38 // Function dispatchRecordProto: (dynamic) → dynamic
39 function dispatchRecordProto(record) { 39 function dispatchRecordProto(record) {
40 return _foreign_helper.JS('', '#.p', record); 40 return record.p;
41 } 41 }
42 // Function dispatchRecordExtension: (dynamic) → dynamic 42 // Function dispatchRecordExtension: (dynamic) → dynamic
43 function dispatchRecordExtension(record) { 43 function dispatchRecordExtension(record) {
44 return _foreign_helper.JS('', '#.e', record); 44 return record.e;
45 } 45 }
46 // Function dispatchRecordIndexability: (dynamic) → dynamic 46 // Function dispatchRecordIndexability: (dynamic) → dynamic
47 function dispatchRecordIndexability(record) { 47 function dispatchRecordIndexability(record) {
48 return _foreign_helper.JS('bool|Null', '#.x', record); 48 return record.x;
49 } 49 }
50 // Function getNativeInterceptor: (dynamic) → dynamic 50 // Function getNativeInterceptor: (dynamic) → dynamic
51 function getNativeInterceptor(object) { 51 function getNativeInterceptor(object) {
52 let record = getDispatchProperty(object); 52 let record = getDispatchProperty(object);
53 if (record === null) { 53 if (record === null) {
54 if (_js_helper.initNativeDispatchFlag === null) { 54 if (_js_helper.initNativeDispatchFlag === null) {
55 _js_helper.initNativeDispatch(); 55 _js_helper.initNativeDispatch();
56 record = getDispatchProperty(object); 56 record = getDispatchProperty(object);
57 } 57 }
58 } 58 }
59 if (record !== null) { 59 if (record !== null) {
60 let proto = dispatchRecordProto(record); 60 let proto = dispatchRecordProto(record);
61 if (false === proto) 61 if (false === proto)
62 return dispatchRecordInterceptor(record); 62 return dispatchRecordInterceptor(record);
63 if (true === proto) 63 if (true === proto)
64 return object; 64 return object;
65 let objectProto = _foreign_helper.JS('', 'Object.getPrototypeOf(#)', objec t); 65 let objectProto = Object.getPrototypeOf(object);
66 if (_foreign_helper.JS('bool', '# === #', proto, objectProto)) { 66 if (proto === objectProto) {
67 return dispatchRecordInterceptor(record); 67 return dispatchRecordInterceptor(record);
68 } 68 }
69 let extension = dispatchRecordExtension(record); 69 let extension = dispatchRecordExtension(record);
70 if (_foreign_helper.JS('bool', '# === #', extension, objectProto)) { 70 if (extension === objectProto) {
71 let discriminatedTag = _foreign_helper.JS('', '(#)(#, #)', proto, object , record); 71 let discriminatedTag = proto(object, record);
72 throw new core.UnimplementedError(`Return interceptor for ${discriminate dTag}`); 72 throw new core.UnimplementedError(`Return interceptor for ${discriminate dTag}`);
73 } 73 }
74 } 74 }
75 let interceptor = _js_helper.lookupAndCacheInterceptor(object); 75 let interceptor = _js_helper.lookupAndCacheInterceptor(object);
76 if (interceptor === null) { 76 if (interceptor === null) {
77 let proto = _foreign_helper.JS('', 'Object.getPrototypeOf(#)', object); 77 let proto = Object.getPrototypeOf(object);
78 if (_foreign_helper.JS('bool', '# == null || # === Object.prototype', prot o, proto)) { 78 if (proto == null || proto === Object.prototype) {
79 return _foreign_helper.JS_INTERCEPTOR_CONSTANT(PlainJavaScriptObject); 79 return _foreign_helper.JS_INTERCEPTOR_CONSTANT(PlainJavaScriptObject);
80 } else { 80 } else {
81 return _foreign_helper.JS_INTERCEPTOR_CONSTANT(UnknownJavaScriptObject); 81 return _foreign_helper.JS_INTERCEPTOR_CONSTANT(UnknownJavaScriptObject);
82 } 82 }
83 } 83 }
84 return interceptor; 84 return interceptor;
85 } 85 }
86 dart.copyProperties(_interceptors, { 86 dart.copyProperties(_interceptors, {
87 get mapTypeToInterceptor() { 87 get mapTypeToInterceptor() {
88 return _foreign_helper.JS_EMBEDDED_GLOBAL('', dart.as(_js_embedded_names.M AP_TYPE_TO_INTERCEPTOR, core.String)); 88 return _foreign_helper.JS_EMBEDDED_GLOBAL('', dart.as(_js_embedded_names.M AP_TYPE_TO_INTERCEPTOR, core.String));
89 } 89 }
90 }); 90 });
91 // Function findIndexForNativeSubclassType: (Type) → int 91 // Function findIndexForNativeSubclassType: (Type) → int
92 function findIndexForNativeSubclassType(type) { 92 function findIndexForNativeSubclassType(type) {
93 if (_foreign_helper.JS('bool', '# == null', _interceptors.mapTypeToIntercept or)) 93 if (_interceptors.mapTypeToInterceptor == null)
94 return dart.as(null, core.int); 94 return dart.as(null, core.int);
95 let map = dart.as(_foreign_helper.JS('JSFixedArray', '#', _interceptors.mapT ypeToInterceptor), core.List); 95 let map = dart.as(_interceptors.mapTypeToInterceptor, core.List);
96 for (let i = 0; i + 1 < map.length; i = 3) { 96 for (let i = 0; i + 1 < map.length; i = 3) {
97 if (dart.equals(type, map.get(i))) { 97 if (dart.equals(type, map.get(i))) {
98 return i; 98 return i;
99 } 99 }
100 } 100 }
101 return dart.as(null, core.int); 101 return dart.as(null, core.int);
102 } 102 }
103 // Function findInterceptorConstructorForType: (Type) → dynamic 103 // Function findInterceptorConstructorForType: (Type) → dynamic
104 function findInterceptorConstructorForType(type) { 104 function findInterceptorConstructorForType(type) {
105 let index = findIndexForNativeSubclassType(type); 105 let index = findIndexForNativeSubclassType(type);
106 if (index === null) 106 if (index === null)
107 return null; 107 return null;
108 let map = dart.as(_foreign_helper.JS('JSFixedArray', '#', _interceptors.mapT ypeToInterceptor), core.List); 108 let map = dart.as(_interceptors.mapTypeToInterceptor, core.List);
109 return map.get(index + 1); 109 return map.get(index + 1);
110 } 110 }
111 // Function findConstructorForNativeSubclassType: (Type, String) → dynamic 111 // Function findConstructorForNativeSubclassType: (Type, String) → dynamic
112 function findConstructorForNativeSubclassType(type, name) { 112 function findConstructorForNativeSubclassType(type, name) {
113 let index = findIndexForNativeSubclassType(type); 113 let index = findIndexForNativeSubclassType(type);
114 if (index === null) 114 if (index === null)
115 return null; 115 return null;
116 let map = dart.as(_foreign_helper.JS('JSFixedArray', '#', _interceptors.mapT ypeToInterceptor), core.List); 116 let map = dart.as(_interceptors.mapTypeToInterceptor, core.List);
117 let constructorMap = map.get(index + 2); 117 let constructorMap = map.get(index + 2);
118 let constructorFn = _foreign_helper.JS('', '#[#]', constructorMap, name); 118 let constructorFn = constructorMap[name];
119 return constructorFn; 119 return constructorFn;
120 } 120 }
121 // Function findInterceptorForType: (Type) → dynamic 121 // Function findInterceptorForType: (Type) → dynamic
122 function findInterceptorForType(type) { 122 function findInterceptorForType(type) {
123 let constructor = findInterceptorConstructorForType(type); 123 let constructor = findInterceptorConstructorForType(type);
124 if (constructor === null) 124 if (constructor === null)
125 return null; 125 return null;
126 return _foreign_helper.JS('', '#.prototype', constructor); 126 return constructor.prototype;
127 } 127 }
128 class Interceptor extends dart.Object { 128 class Interceptor extends dart.Object {
129 Interceptor() { 129 Interceptor() {
130 } 130 }
131 ['=='](other) { 131 ['=='](other) {
132 return core.identical(this, other); 132 return core.identical(this, other);
133 } 133 }
134 get hashCode() { 134 get hashCode() {
135 return _js_helper.Primitives.objectHashCode(this); 135 return _js_helper.Primitives.objectHashCode(this);
136 } 136 }
137 toString() { 137 toString() {
138 return _js_helper.Primitives.objectToString(this); 138 return _js_helper.Primitives.objectToString(this);
139 } 139 }
140 noSuchMethod(invocation) { 140 noSuchMethod(invocation) {
141 throw new core.NoSuchMethodError(this, invocation.memberName, invocation.p ositionalArguments, invocation.namedArguments); 141 throw new core.NoSuchMethodError(this, invocation.memberName, invocation.p ositionalArguments, invocation.namedArguments);
142 } 142 }
143 get runtimeType() { 143 get runtimeType() {
144 return _js_helper.getRuntimeType(this); 144 return _js_helper.getRuntimeType(this);
145 } 145 }
146 } 146 }
147 class JSBool extends Interceptor { 147 class JSBool extends Interceptor {
148 JSBool() { 148 JSBool() {
149 super.Interceptor(); 149 super.Interceptor();
150 } 150 }
151 toString() { 151 toString() {
152 return dart.as(_foreign_helper.JS('String', 'String(#)', this), core.Strin g); 152 return String(this);
153 } 153 }
154 get hashCode() { 154 get hashCode() {
155 return this ? 2 * 3 * 23 * 3761 : 269 * 811; 155 return this ? 2 * 3 * 23 * 3761 : 269 * 811;
156 } 156 }
157 get runtimeType() { 157 get runtimeType() {
158 return core.bool; 158 return core.bool;
159 } 159 }
160 } 160 }
161 class JSNull extends Interceptor { 161 class JSNull extends Interceptor {
162 JSNull() { 162 JSNull() {
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 class PlainJavaScriptObject extends JavaScriptObject { 198 class PlainJavaScriptObject extends JavaScriptObject {
199 PlainJavaScriptObject() { 199 PlainJavaScriptObject() {
200 super.JavaScriptObject(); 200 super.JavaScriptObject();
201 } 201 }
202 } 202 }
203 class UnknownJavaScriptObject extends JavaScriptObject { 203 class UnknownJavaScriptObject extends JavaScriptObject {
204 UnknownJavaScriptObject() { 204 UnknownJavaScriptObject() {
205 super.JavaScriptObject(); 205 super.JavaScriptObject();
206 } 206 }
207 toString() { 207 toString() {
208 return dart.as(_foreign_helper.JS('String', 'String(#)', this), core.Strin g); 208 return String(this);
209 } 209 }
210 } 210 }
211 let JSArray$ = dart.generic(function(E) { 211 let JSArray$ = dart.generic(function(E) {
212 class JSArray extends Interceptor { 212 class JSArray extends Interceptor {
213 JSArray() { 213 JSArray() {
214 super.Interceptor(); 214 super.Interceptor();
215 } 215 }
216 JSArray$fixed(length) { 216 JSArray$fixed(length) {
217 if (dart.notNull(!(typeof length == number)) || dart.notNull(length < 0) ) { 217 if (dart.notNull(!(typeof length == number)) || dart.notNull(length < 0) ) {
218 throw new core.ArgumentError(`Length must be a non-negative integer: $ {length}`); 218 throw new core.ArgumentError(`Length must be a non-negative integer: $ {length}`);
219 } 219 }
220 return new JSArray.markFixed(_foreign_helper.JS('', 'new Array(#)', leng th)); 220 return new JSArray.markFixed(new Array(length));
221 } 221 }
222 JSArray$emptyGrowable() { 222 JSArray$emptyGrowable() {
223 return new JSArray.markGrowable(_foreign_helper.JS('', '[]')); 223 return new JSArray.markGrowable([]);
224 } 224 }
225 JSArray$growable(length) { 225 JSArray$growable(length) {
226 if (dart.notNull(!(typeof length == number)) || dart.notNull(length < 0) ) { 226 if (dart.notNull(!(typeof length == number)) || dart.notNull(length < 0) ) {
227 throw new core.ArgumentError(`Length must be a non-negative integer: $ {length}`); 227 throw new core.ArgumentError(`Length must be a non-negative integer: $ {length}`);
228 } 228 }
229 return new JSArray.markGrowable(_foreign_helper.JS('', 'new Array(#)', l ength)); 229 return new JSArray.markGrowable(new Array(length));
230 } 230 }
231 JSArray$typed(allocation) { 231 JSArray$typed(allocation) {
232 return dart.as(_foreign_helper.JS('JSArray', '#', allocation), JSArray$( E)); 232 return dart.as(allocation, JSArray$(E));
233 } 233 }
234 JSArray$markFixed(allocation) { 234 JSArray$markFixed(allocation) {
235 return dart.as(_foreign_helper.JS('JSFixedArray', '#', markFixedList(new JSArray.typed(allocation))), JSArray$(E)); 235 return dart.as(markFixedList(new JSArray.typed(allocation)), JSArray$(E) );
236 } 236 }
237 JSArray$markGrowable(allocation) { 237 JSArray$markGrowable(allocation) {
238 return dart.as(_foreign_helper.JS('JSExtendableArray', '#', new JSArray. typed(allocation)), JSArray$(E)); 238 return dart.as(new JSArray.typed(allocation), JSArray$(E));
239 } 239 }
240 static markFixedList(list) { 240 static markFixedList(list) {
241 _foreign_helper.JS('void', '#.fixed$length = Array', list); 241 list.fixed$length = Array;
242 return dart.as(_foreign_helper.JS('JSFixedArray', '#', list), core.List) ; 242 return dart.as(list, core.List);
243 } 243 }
244 checkMutable(reason) { 244 checkMutable(reason) {
245 if (!dart.is(this, JSMutableArray)) { 245 if (!dart.is(this, JSMutableArray)) {
246 throw new core.UnsupportedError(dart.as(reason, core.String)); 246 throw new core.UnsupportedError(dart.as(reason, core.String));
247 } 247 }
248 } 248 }
249 checkGrowable(reason) { 249 checkGrowable(reason) {
250 if (!dart.is(this, JSExtendableArray)) { 250 if (!dart.is(this, JSExtendableArray)) {
251 throw new core.UnsupportedError(dart.as(reason, core.String)); 251 throw new core.UnsupportedError(dart.as(reason, core.String));
252 } 252 }
253 } 253 }
254 add(value) { 254 add(value) {
255 this.checkGrowable('add'); 255 this.checkGrowable('add');
256 _foreign_helper.JS('void', '#.push(#)', this, value); 256 this.push(value);
257 } 257 }
258 removeAt(index) { 258 removeAt(index) {
259 if (!(typeof index == number)) 259 if (!(typeof index == number))
260 throw new core.ArgumentError(index); 260 throw new core.ArgumentError(index);
261 if (dart.notNull(index < 0) || dart.notNull(index >= this.length)) { 261 if (dart.notNull(index < 0) || dart.notNull(index >= this.length)) {
262 throw new core.RangeError.value(index); 262 throw new core.RangeError.value(index);
263 } 263 }
264 this.checkGrowable('removeAt'); 264 this.checkGrowable('removeAt');
265 return dart.as(_foreign_helper.JS('var', '#.splice(#, 1)[0]', this, inde x), E); 265 return dart.as(this.splice(index, 1)[0], E);
266 } 266 }
267 insert(index, value) { 267 insert(index, value) {
268 if (!(typeof index == number)) 268 if (!(typeof index == number))
269 throw new core.ArgumentError(index); 269 throw new core.ArgumentError(index);
270 if (dart.notNull(index < 0) || dart.notNull(index > this.length)) { 270 if (dart.notNull(index < 0) || dart.notNull(index > this.length)) {
271 throw new core.RangeError.value(index); 271 throw new core.RangeError.value(index);
272 } 272 }
273 this.checkGrowable('insert'); 273 this.checkGrowable('insert');
274 _foreign_helper.JS('void', '#.splice(#, 0, #)', this, index, value); 274 this.splice(index, 0, value);
275 } 275 }
276 insertAll(index, iterable) { 276 insertAll(index, iterable) {
277 this.checkGrowable('insertAll'); 277 this.checkGrowable('insertAll');
278 _internal.IterableMixinWorkaround.insertAllList(this, index, iterable); 278 _internal.IterableMixinWorkaround.insertAllList(this, index, iterable);
279 } 279 }
280 setAll(index, iterable) { 280 setAll(index, iterable) {
281 this.checkMutable('setAll'); 281 this.checkMutable('setAll');
282 _internal.IterableMixinWorkaround.setAllList(this, index, iterable); 282 _internal.IterableMixinWorkaround.setAllList(this, index, iterable);
283 } 283 }
284 removeLast() { 284 removeLast() {
285 this.checkGrowable('removeLast'); 285 this.checkGrowable('removeLast');
286 if (this.length === 0) 286 if (this.length === 0)
287 throw new core.RangeError.value(-1); 287 throw new core.RangeError.value(-1);
288 return dart.as(_foreign_helper.JS('var', '#.pop()', this), E); 288 return dart.as(this.pop(), E);
289 } 289 }
290 remove(element) { 290 remove(element) {
291 this.checkGrowable('remove'); 291 this.checkGrowable('remove');
292 for (let i = 0; i < this.length; i++) { 292 for (let i = 0; i < this.length; i++) {
293 if (dart.equals(this.get(i), element)) { 293 if (dart.equals(this.get(i), element)) {
294 _foreign_helper.JS('var', '#.splice(#, 1)', this, i); 294 this.splice(i, 1);
295 return true; 295 return true;
296 } 296 }
297 } 297 }
298 return false; 298 return false;
299 } 299 }
300 removeWhere(test) { 300 removeWhere(test) {
301 _internal.IterableMixinWorkaround.removeWhereList(this, dart.as(test, da rt.throw_("Unimplemented type (dynamic) → bool"))); 301 _internal.IterableMixinWorkaround.removeWhereList(this, dart.as(test, da rt.throw_("Unimplemented type (dynamic) → bool")));
302 } 302 }
303 retainWhere(test) { 303 retainWhere(test) {
304 _internal.IterableMixinWorkaround.removeWhereList(this, dart.as((element ) => !dart.notNull(test(element)), dart.throw_("Unimplemented type (dynamic) → b ool"))); 304 _internal.IterableMixinWorkaround.removeWhereList(this, dart.as((element ) => !dart.notNull(test(element)), dart.throw_("Unimplemented type (dynamic) → b ool")));
305 } 305 }
306 where(f) { 306 where(f) {
307 return new _internal.IterableMixinWorkaround().where(this, dart.as(f, da rt.throw_("Unimplemented type (dynamic) → bool"))); 307 return new _internal.IterableMixinWorkaround().where(this, dart.as(f, da rt.throw_("Unimplemented type (dynamic) → bool")));
308 } 308 }
309 expand(f) { 309 expand(f) {
310 return _internal.IterableMixinWorkaround.expand(this, dart.as(f, dart.th row_("Unimplemented type (dynamic) → Iterable<dynamic>"))); 310 return _internal.IterableMixinWorkaround.expand(this, dart.as(f, dart.th row_("Unimplemented type (dynamic) → Iterable<dynamic>")));
311 } 311 }
312 addAll(collection) { 312 addAll(collection) {
313 for (let e of collection) { 313 for (let e of collection) {
314 this.add(e); 314 this.add(e);
315 } 315 }
316 } 316 }
317 clear() { 317 clear() {
318 this.length = 0; 318 this.length = 0;
319 } 319 }
320 forEach(f) { 320 forEach(f) {
321 let length = this.length; 321 let length = this.length;
322 for (let i = 0; i < length; i++) { 322 for (let i = 0; i < length; i++) {
323 f(dart.as(_foreign_helper.JS('', '#[#]', this, i), E)); 323 f(dart.as(this[i], E));
324 if (length !== this.length) { 324 if (length !== this.length) {
325 throw new core.ConcurrentModificationError(this); 325 throw new core.ConcurrentModificationError(this);
326 } 326 }
327 } 327 }
328 } 328 }
329 map(f) { 329 map(f) {
330 return _internal.IterableMixinWorkaround.mapList(this, dart.as(f, dart.t hrow_("Unimplemented type (dynamic) → dynamic"))); 330 return _internal.IterableMixinWorkaround.mapList(this, dart.as(f, dart.t hrow_("Unimplemented type (dynamic) → dynamic")));
331 } 331 }
332 join(separator) { 332 join(separator) {
333 if (separator === void 0) 333 if (separator === void 0)
334 separator = ""; 334 separator = "";
335 let list = new core.List(this.length); 335 let list = new core.List(this.length);
336 for (let i = 0; i < this.length; i++) { 336 for (let i = 0; i < this.length; i++) {
337 list.set(i, `${this.get(i)}`); 337 list.set(i, `${this.get(i)}`);
338 } 338 }
339 return dart.as(_foreign_helper.JS('String', "#.join(#)", list, separator ), core.String); 339 return list.join(separator);
340 } 340 }
341 take(n) { 341 take(n) {
342 return new _internal.IterableMixinWorkaround().takeList(this, n); 342 return new _internal.IterableMixinWorkaround().takeList(this, n);
343 } 343 }
344 takeWhile(test) { 344 takeWhile(test) {
345 return new _internal.IterableMixinWorkaround().takeWhile(this, dart.as(t est, dart.throw_("Unimplemented type (dynamic) → bool"))); 345 return new _internal.IterableMixinWorkaround().takeWhile(this, dart.as(t est, dart.throw_("Unimplemented type (dynamic) → bool")));
346 } 346 }
347 skip(n) { 347 skip(n) {
348 return new _internal.IterableMixinWorkaround().skipList(this, n); 348 return new _internal.IterableMixinWorkaround().skipList(this, n);
349 } 349 }
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
383 end = this.length; 383 end = this.length;
384 } else { 384 } else {
385 if (!(typeof end == number)) 385 if (!(typeof end == number))
386 throw new core.ArgumentError(end); 386 throw new core.ArgumentError(end);
387 if (dart.notNull(end < start) || dart.notNull(end > this.length)) { 387 if (dart.notNull(end < start) || dart.notNull(end > this.length)) {
388 throw new core.RangeError.range(end, start, this.length); 388 throw new core.RangeError.range(end, start, this.length);
389 } 389 }
390 } 390 }
391 if (start === end) 391 if (start === end)
392 return new List.from([]); 392 return new List.from([]);
393 return new JSArray.markGrowable(_foreign_helper.JS('', '#.slice(#, #)', this, start, end)); 393 return new JSArray.markGrowable(this.slice(start, end));
394 } 394 }
395 getRange(start, end) { 395 getRange(start, end) {
396 return new _internal.IterableMixinWorkaround().getRangeList(this, start, end); 396 return new _internal.IterableMixinWorkaround().getRangeList(this, start, end);
397 } 397 }
398 get first() { 398 get first() {
399 if (this.length > 0) 399 if (this.length > 0)
400 return this.get(0); 400 return this.get(0);
401 throw new core.StateError("No elements"); 401 throw new core.StateError("No elements");
402 } 402 }
403 get last() { 403 get last() {
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
482 } 482 }
483 get isNotEmpty() { 483 get isNotEmpty() {
484 return !dart.notNull(this.isEmpty); 484 return !dart.notNull(this.isEmpty);
485 } 485 }
486 toString() { 486 toString() {
487 return collection.ListBase.listToString(this); 487 return collection.ListBase.listToString(this);
488 } 488 }
489 toList(opt$) { 489 toList(opt$) {
490 let growable = opt$.growable === void 0 ? true : opt$.growable; 490 let growable = opt$.growable === void 0 ? true : opt$.growable;
491 if (growable) { 491 if (growable) {
492 return new JSArray.markGrowable(_foreign_helper.JS('', '#.slice()', th is)); 492 return new JSArray.markGrowable(this.slice());
493 } else { 493 } else {
494 return new JSArray.markFixed(_foreign_helper.JS('', '#.slice()', this) ); 494 return new JSArray.markFixed(this.slice());
495 } 495 }
496 } 496 }
497 toSet() { 497 toSet() {
498 return new core.Set.from(this); 498 return new core.Set.from(this);
499 } 499 }
500 get iterator() { 500 get iterator() {
501 return new _internal.ListIterator(this); 501 return new _internal.ListIterator(this);
502 } 502 }
503 get hashCode() { 503 get hashCode() {
504 return _js_helper.Primitives.objectHashCode(this); 504 return _js_helper.Primitives.objectHashCode(this);
505 } 505 }
506 get length() { 506 get length() {
507 return dart.as(_foreign_helper.JS('JSUInt32', '#.length', this), core.in t); 507 return dart.as(this.length, core.int);
508 } 508 }
509 set length(newLength) { 509 set length(newLength) {
510 if (!(typeof newLength == number)) 510 if (!(typeof newLength == number))
511 throw new core.ArgumentError(newLength); 511 throw new core.ArgumentError(newLength);
512 if (newLength < 0) 512 if (newLength < 0)
513 throw new core.RangeError.value(newLength); 513 throw new core.RangeError.value(newLength);
514 this.checkGrowable('set length'); 514 this.checkGrowable('set length');
515 _foreign_helper.JS('void', '#.length = #', this, newLength); 515 this.length = newLength;
516 } 516 }
517 get(index) { 517 get(index) {
518 if (!(typeof index == number)) 518 if (!(typeof index == number))
519 throw new core.ArgumentError(index); 519 throw new core.ArgumentError(index);
520 if (dart.notNull(index >= this.length) || dart.notNull(index < 0)) 520 if (dart.notNull(index >= this.length) || dart.notNull(index < 0))
521 throw new core.RangeError.value(index); 521 throw new core.RangeError.value(index);
522 return dart.as(_foreign_helper.JS('var', '#[#]', this, index), E); 522 return dart.as(this[index], E);
523 } 523 }
524 set(index, value) { 524 set(index, value) {
525 this.checkMutable('indexed set'); 525 this.checkMutable('indexed set');
526 if (!(typeof index == number)) 526 if (!(typeof index == number))
527 throw new core.ArgumentError(index); 527 throw new core.ArgumentError(index);
528 if (dart.notNull(index >= this.length) || dart.notNull(index < 0)) 528 if (dart.notNull(index >= this.length) || dart.notNull(index < 0))
529 throw new core.RangeError.value(index); 529 throw new core.RangeError.value(index);
530 _foreign_helper.JS('void', '#[#] = #', this, index, value); 530 this[index] = value;
531 } 531 }
532 asMap() { 532 asMap() {
533 return new _internal.IterableMixinWorkaround().asMapList(this); 533 return new _internal.IterableMixinWorkaround().asMapList(this);
534 } 534 }
535 } 535 }
536 dart.defineNamedConstructor(JSArray, 'fixed'); 536 dart.defineNamedConstructor(JSArray, 'fixed');
537 dart.defineNamedConstructor(JSArray, 'emptyGrowable'); 537 dart.defineNamedConstructor(JSArray, 'emptyGrowable');
538 dart.defineNamedConstructor(JSArray, 'growable'); 538 dart.defineNamedConstructor(JSArray, 'growable');
539 dart.defineNamedConstructor(JSArray, 'typed'); 539 dart.defineNamedConstructor(JSArray, 'typed');
540 dart.defineNamedConstructor(JSArray, 'markFixed'); 540 dart.defineNamedConstructor(JSArray, 'markFixed');
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
587 } 587 }
588 return 1; 588 return 1;
589 } else { 589 } else {
590 return -1; 590 return -1;
591 } 591 }
592 } 592 }
593 get isNegative() { 593 get isNegative() {
594 return dart.equals(this, 0) ? 1['/'](this) < 0 : this['<'](0); 594 return dart.equals(this, 0) ? 1['/'](this) < 0 : this['<'](0);
595 } 595 }
596 get isNaN() { 596 get isNaN() {
597 return dart.as(_foreign_helper.JS('bool', 'isNaN(#)', this), core.bool); 597 return isNaN(this);
598 } 598 }
599 get isInfinite() { 599 get isInfinite() {
600 return dart.dbinary(_foreign_helper.JS('bool', '# == Infinity', this), '|| ', _foreign_helper.JS('bool', '# == -Infinity', this)); 600 return dart.notNull(this == Infinity) || dart.notNull(this == -Infinity);
601 } 601 }
602 get isFinite() { 602 get isFinite() {
603 return dart.as(_foreign_helper.JS('bool', 'isFinite(#)', this), core.bool) ; 603 return isFinite(this);
604 } 604 }
605 remainder(b) { 605 remainder(b) {
606 _js_helper.checkNull(b); 606 _js_helper.checkNull(b);
607 if (!dart.is(b, core.num)) 607 if (!dart.is(b, core.num))
608 throw new core.ArgumentError(b); 608 throw new core.ArgumentError(b);
609 return dart.as(_foreign_helper.JS('num', '# % #', this, b), core.num); 609 return this % b;
610 } 610 }
611 abs() { 611 abs() {
612 return dart.as(_foreign_helper.JS('num', 'Math.abs(#)', this), core.num); 612 return Math.abs(this);
613 } 613 }
614 get sign() { 614 get sign() {
615 return this['>'](0) ? 1 : this['<'](0) ? -1 : this; 615 return this['>'](0) ? 1 : this['<'](0) ? -1 : this;
616 } 616 }
617 toInt() { 617 toInt() {
618 if (dart.notNull(this['>='](_MIN_INT32)) && dart.notNull(this['<='](_MAX_I NT32))) { 618 if (dart.notNull(this['>='](_MIN_INT32)) && dart.notNull(this['<='](_MAX_I NT32))) {
619 return dart.as(_foreign_helper.JS('int', '# | 0', this), core.int); 619 return this | 0;
620 } 620 }
621 if (_foreign_helper.JS('bool', 'isFinite(#)', this)) { 621 if (isFinite(this)) {
622 return dart.as(_foreign_helper.JS('int', '# + 0', this.truncateToDouble( )), core.int); 622 return this.truncateToDouble() + 0;
623 } 623 }
624 throw new core.UnsupportedError(dart.as(_foreign_helper.JS("String", "''+# ", this), core.String)); 624 throw new core.UnsupportedError('' + this);
625 } 625 }
626 truncate() { 626 truncate() {
627 return this.toInt(); 627 return this.toInt();
628 } 628 }
629 ceil() { 629 ceil() {
630 return this.ceilToDouble().toInt(); 630 return this.ceilToDouble().toInt();
631 } 631 }
632 floor() { 632 floor() {
633 return this.floorToDouble().toInt(); 633 return this.floorToDouble().toInt();
634 } 634 }
635 round() { 635 round() {
636 return this.roundToDouble().toInt(); 636 return this.roundToDouble().toInt();
637 } 637 }
638 ceilToDouble() { 638 ceilToDouble() {
639 return dart.as(_foreign_helper.JS('num', 'Math.ceil(#)', this), core.doubl e); 639 return dart.notNull(Math.ceil(this));
640 } 640 }
641 floorToDouble() { 641 floorToDouble() {
642 return dart.as(_foreign_helper.JS('num', 'Math.floor(#)', this), core.doub le); 642 return dart.notNull(Math.floor(this));
643 } 643 }
644 roundToDouble() { 644 roundToDouble() {
645 if (this['<'](0)) { 645 if (this['<'](0)) {
646 return dart.as(_foreign_helper.JS('num', '-Math.round(-#)', this), core. double); 646 return dart.notNull(-Math.round(-this));
647 } else { 647 } else {
648 return dart.as(_foreign_helper.JS('num', 'Math.round(#)', this), core.do uble); 648 return dart.notNull(Math.round(this));
649 } 649 }
650 } 650 }
651 truncateToDouble() { 651 truncateToDouble() {
652 return this['<'](0) ? this.ceilToDouble() : this.floorToDouble(); 652 return this['<'](0) ? this.ceilToDouble() : this.floorToDouble();
653 } 653 }
654 clamp(lowerLimit, upperLimit) { 654 clamp(lowerLimit, upperLimit) {
655 if (!dart.is(lowerLimit, core.num)) 655 if (!dart.is(lowerLimit, core.num))
656 throw new core.ArgumentError(lowerLimit); 656 throw new core.ArgumentError(lowerLimit);
657 if (!dart.is(upperLimit, core.num)) 657 if (!dart.is(upperLimit, core.num))
658 throw new core.ArgumentError(upperLimit); 658 throw new core.ArgumentError(upperLimit);
659 if (dart.dbinary(dart.dinvoke(lowerLimit, 'compareTo', upperLimit), '>', 0 )) { 659 if (dart.dbinary(dart.dinvoke(lowerLimit, 'compareTo', upperLimit), '>', 0 )) {
660 throw new core.ArgumentError(lowerLimit); 660 throw new core.ArgumentError(lowerLimit);
661 } 661 }
662 if (this.compareTo(dart.as(lowerLimit, core.num)) < 0) 662 if (this.compareTo(dart.as(lowerLimit, core.num)) < 0)
663 return dart.as(lowerLimit, core.num); 663 return dart.as(lowerLimit, core.num);
664 if (this.compareTo(dart.as(upperLimit, core.num)) > 0) 664 if (this.compareTo(dart.as(upperLimit, core.num)) > 0)
665 return dart.as(upperLimit, core.num); 665 return dart.as(upperLimit, core.num);
666 return this; 666 return this;
667 } 667 }
668 toDouble() { 668 toDouble() {
669 return this; 669 return this;
670 } 670 }
671 toStringAsFixed(fractionDigits) { 671 toStringAsFixed(fractionDigits) {
672 _js_helper.checkInt(fractionDigits); 672 _js_helper.checkInt(fractionDigits);
673 if (dart.notNull(fractionDigits < 0) || dart.notNull(fractionDigits > 20)) { 673 if (dart.notNull(fractionDigits < 0) || dart.notNull(fractionDigits > 20)) {
674 throw new core.RangeError(fractionDigits); 674 throw new core.RangeError(fractionDigits);
675 } 675 }
676 let result = dart.as(_foreign_helper.JS('String', '#.toFixed(#)', this, fr actionDigits), core.String); 676 let result = this.toFixed(fractionDigits);
677 if (dart.notNull(dart.equals(this, 0)) && dart.notNull(this.isNegative)) 677 if (dart.notNull(dart.equals(this, 0)) && dart.notNull(this.isNegative))
678 return `-${result}`; 678 return `-${result}`;
679 return result; 679 return result;
680 } 680 }
681 toStringAsExponential(fractionDigits) { 681 toStringAsExponential(fractionDigits) {
682 if (fractionDigits === void 0) 682 if (fractionDigits === void 0)
683 fractionDigits = null; 683 fractionDigits = null;
684 let result = null; 684 let result = null;
685 if (fractionDigits !== null) { 685 if (fractionDigits !== null) {
686 _js_helper.checkInt(fractionDigits); 686 _js_helper.checkInt(fractionDigits);
687 if (dart.notNull(fractionDigits < 0) || dart.notNull(fractionDigits > 20 )) { 687 if (dart.notNull(fractionDigits < 0) || dart.notNull(fractionDigits > 20 )) {
688 throw new core.RangeError(fractionDigits); 688 throw new core.RangeError(fractionDigits);
689 } 689 }
690 result = dart.as(_foreign_helper.JS('String', '#.toExponential(#)', this , fractionDigits), core.String); 690 result = this.toExponential(fractionDigits);
691 } else { 691 } else {
692 result = dart.as(_foreign_helper.JS('String', '#.toExponential()', this) , core.String); 692 result = this.toExponential();
693 } 693 }
694 if (dart.notNull(dart.equals(this, 0)) && dart.notNull(this.isNegative)) 694 if (dart.notNull(dart.equals(this, 0)) && dart.notNull(this.isNegative))
695 return `-${result}`; 695 return `-${result}`;
696 return result; 696 return result;
697 } 697 }
698 toStringAsPrecision(precision) { 698 toStringAsPrecision(precision) {
699 _js_helper.checkInt(precision); 699 _js_helper.checkInt(precision);
700 if (dart.notNull(precision < 1) || dart.notNull(precision > 21)) { 700 if (dart.notNull(precision < 1) || dart.notNull(precision > 21)) {
701 throw new core.RangeError(precision); 701 throw new core.RangeError(precision);
702 } 702 }
703 let result = dart.as(_foreign_helper.JS('String', '#.toPrecision(#)', this , precision), core.String); 703 let result = this.toPrecision(precision);
704 if (dart.notNull(dart.equals(this, 0)) && dart.notNull(this.isNegative)) 704 if (dart.notNull(dart.equals(this, 0)) && dart.notNull(this.isNegative))
705 return `-${result}`; 705 return `-${result}`;
706 return result; 706 return result;
707 } 707 }
708 toRadixString(radix) { 708 toRadixString(radix) {
709 _js_helper.checkInt(radix); 709 _js_helper.checkInt(radix);
710 if (dart.notNull(radix < 2) || dart.notNull(radix > 36)) 710 if (dart.notNull(radix < 2) || dart.notNull(radix > 36))
711 throw new core.RangeError(radix); 711 throw new core.RangeError(radix);
712 let result = dart.as(_foreign_helper.JS('String', '#.toString(#)', this, r adix), core.String); 712 let result = this.toString(radix);
713 let rightParenCode = 41; 713 let rightParenCode = 41;
714 if (result.codeUnitAt(result.length - 1) !== rightParenCode) { 714 if (result.codeUnitAt(result.length - 1) !== rightParenCode) {
715 return result; 715 return result;
716 } 716 }
717 return _handleIEtoString(result); 717 return _handleIEtoString(result);
718 } 718 }
719 static _handleIEtoString(result) { 719 static _handleIEtoString(result) {
720 let match = _foreign_helper.JS('List|Null', '/^([\\da-z]+)(?:\\.([\\da-z]+ ))?\\(e\\+(\\d+)\\)$/.exec(#)', result); 720 let match = /^([\da-z]+)(?:\.([\da-z]+))?\(e\+(\d+)\)$/.exec(result);
721 if (match === null) { 721 if (match === null) {
722 throw new core.UnsupportedError(`Unexpected toString result: ${result}`) ; 722 throw new core.UnsupportedError(`Unexpected toString result: ${result}`) ;
723 } 723 }
724 let result = dart.as(_foreign_helper.JS('String', '#', dart.dindex(match, 1)), core.String); 724 let result = dart.dindex(match, 1);
725 let exponent = dart.as(_foreign_helper.JS("int", "+#", dart.dindex(match, 3)), core.int); 725 let exponent = +dart.dindex(match, 3);
726 if (dart.dindex(match, 2) !== null) { 726 if (dart.dindex(match, 2) !== null) {
727 result = dart.as(_foreign_helper.JS('String', '# + #', result, dart.dind ex(match, 2)), core.String); 727 result = result + dart.dindex(match, 2);
728 exponent = dart.as(_foreign_helper.JS('int', '#.length', dart.dindex(mat ch, 2)), core.int); 728 exponent = dart.dindex(match, 2).length;
729 } 729 }
730 return core.String['+'](result, core.String['*']("0", exponent)); 730 return core.String['+'](result, core.String['*']("0", exponent));
731 } 731 }
732 toString() { 732 toString() {
733 if (core.bool['&&'](dart.equals(this, 0), _foreign_helper.JS('bool', '(1 / #) < 0', this))) { 733 if (dart.notNull(dart.equals(this, 0)) && dart.notNull(1 / this < 0)) {
734 return '-0.0'; 734 return '-0.0';
735 } else { 735 } else {
736 return dart.as(_foreign_helper.JS('String', '"" + (#)', this), core.Stri ng); 736 return "" + this;
737 } 737 }
738 } 738 }
739 get hashCode() { 739 get hashCode() {
740 return dart.as(_foreign_helper.JS('int', '# & 0x1FFFFFFF', this), core.int ); 740 return this & 0x1FFFFFFF;
741 } 741 }
742 ['-']() { 742 ['-']() {
743 return dart.as(_foreign_helper.JS('num', '-#', this), core.num); 743 return -this;
744 } 744 }
745 ['+'](other) { 745 ['+'](other) {
746 if (!dart.is(other, core.num)) 746 if (!dart.is(other, core.num))
747 throw new core.ArgumentError(other); 747 throw new core.ArgumentError(other);
748 return dart.as(_foreign_helper.JS('num', '# + #', this, other), core.num); 748 return this + other;
749 } 749 }
750 ['-'](other) { 750 ['-'](other) {
751 if (!dart.is(other, core.num)) 751 if (!dart.is(other, core.num))
752 throw new core.ArgumentError(other); 752 throw new core.ArgumentError(other);
753 return dart.as(_foreign_helper.JS('num', '# - #', this, other), core.num); 753 return this - other;
754 } 754 }
755 ['/'](other) { 755 ['/'](other) {
756 if (!dart.is(other, core.num)) 756 if (!dart.is(other, core.num))
757 throw new core.ArgumentError(other); 757 throw new core.ArgumentError(other);
758 return dart.as(_foreign_helper.JS('num', '# / #', this, other), core.num); 758 return this / other;
759 } 759 }
760 ['*'](other) { 760 ['*'](other) {
761 if (!dart.is(other, core.num)) 761 if (!dart.is(other, core.num))
762 throw new core.ArgumentError(other); 762 throw new core.ArgumentError(other);
763 return dart.as(_foreign_helper.JS('num', '# * #', this, other), core.num); 763 return this * other;
764 } 764 }
765 ['%'](other) { 765 ['%'](other) {
766 if (!dart.is(other, core.num)) 766 if (!dart.is(other, core.num))
767 throw new core.ArgumentError(other); 767 throw new core.ArgumentError(other);
768 let result = dart.as(_foreign_helper.JS('num', '# % #', this, other), core .num); 768 let result = this % other;
769 if (result === 0) 769 if (result === 0)
770 return 0; 770 return 0;
771 if (dart.notNull(result) > 0) 771 if (dart.notNull(result) > 0)
772 return result; 772 return result;
773 if (dart.dbinary(_foreign_helper.JS('num', '#', other), '<', 0)) { 773 if (dart.notNull(other) < 0) {
774 return core.num['-'](result, _foreign_helper.JS('num', '#', other)); 774 return dart.notNull(result) - dart.notNull(other);
775 } else { 775 } else {
776 return core.num['+'](result, _foreign_helper.JS('num', '#', other)); 776 return dart.notNull(result) + dart.notNull(other);
777 } 777 }
778 } 778 }
779 _isInt32(value) { 779 _isInt32(value) {
780 return dart.as(_foreign_helper.JS('bool', '(# | 0) === #', value, value), core.bool); 780 return (value | 0) === value;
781 } 781 }
782 ['~/'](other) { 782 ['~/'](other) {
783 if (false) 783 if (false)
784 this._tdivFast(other); 784 this._tdivFast(other);
785 if (dart.notNull(dart.notNull(dart.notNull(this._isInt32(this)) && dart.no tNull(this._isInt32(other))) && dart.notNull(0 !== other)) && dart.notNull(-1 != = other)) { 785 if (dart.notNull(dart.notNull(dart.notNull(this._isInt32(this)) && dart.no tNull(this._isInt32(other))) && dart.notNull(0 !== other)) && dart.notNull(-1 != = other)) {
786 return dart.as(_foreign_helper.JS('int', '(# / #) | 0', this, other), co re.int); 786 return this / other | 0;
787 } else { 787 } else {
788 return this._tdivSlow(other); 788 return this._tdivSlow(other);
789 } 789 }
790 } 790 }
791 _tdivFast(other) { 791 _tdivFast(other) {
792 return dart.as(this._isInt32(this) ? _foreign_helper.JS('int', '(# / #) | 0', this, other) : dart.dinvoke(_foreign_helper.JS('num', '# / #', this, other), 'toInt'), core.int); 792 return this._isInt32(this) ? this / other | 0 : (this / other).toInt();
793 } 793 }
794 _tdivSlow(other) { 794 _tdivSlow(other) {
795 if (!dart.is(other, core.num)) 795 if (!dart.is(other, core.num))
796 throw new core.ArgumentError(other); 796 throw new core.ArgumentError(other);
797 return dart.as(dart.dinvoke(_foreign_helper.JS('num', '# / #', this, other ), 'toInt'), core.int); 797 return (this / other).toInt();
798 } 798 }
799 ['<<'](other) { 799 ['<<'](other) {
800 if (!dart.is(other, core.num)) 800 if (!dart.is(other, core.num))
801 throw new core.ArgumentError(other); 801 throw new core.ArgumentError(other);
802 if (dart.dbinary(_foreign_helper.JS('num', '#', other), '<', 0)) 802 if (dart.notNull(other) < 0)
803 throw new core.ArgumentError(other); 803 throw new core.ArgumentError(other);
804 return this._shlPositive(other); 804 return this._shlPositive(other);
805 } 805 }
806 _shlPositive(other) { 806 _shlPositive(other) {
807 return dart.as(_foreign_helper.JS('bool', '# > 31', other) ? 0 : _foreign_ helper.JS('JSUInt32', '(# << #) >>> 0', this, other), core.num); 807 return dart.as(other > 31 ? 0 : this << other >>> 0, core.num);
808 } 808 }
809 ['>>'](other) { 809 ['>>'](other) {
810 if (false) 810 if (false)
811 this._shrReceiverPositive(other); 811 this._shrReceiverPositive(other);
812 if (!dart.is(other, core.num)) 812 if (!dart.is(other, core.num))
813 throw new core.ArgumentError(other); 813 throw new core.ArgumentError(other);
814 if (dart.dbinary(_foreign_helper.JS('num', '#', other), '<', 0)) 814 if (dart.notNull(other) < 0)
815 throw new core.ArgumentError(other); 815 throw new core.ArgumentError(other);
816 return this._shrOtherPositive(other); 816 return this._shrOtherPositive(other);
817 } 817 }
818 _shrOtherPositive(other) { 818 _shrOtherPositive(other) {
819 return dart.as(dart.dbinary(_foreign_helper.JS('num', '#', this), '>', 0) ? this._shrBothPositive(other) : _foreign_helper.JS('JSUInt32', '(# >> #) >>> 0' , this, dart.notNull(other) > 31 ? 31 : other), core.num); 819 return dart.as(dart.notNull(this) > 0 ? this._shrBothPositive(other) : thi s >> (dart.notNull(other) > 31 ? 31 : other) >>> 0, core.num);
820 } 820 }
821 _shrReceiverPositive(other) { 821 _shrReceiverPositive(other) {
822 if (dart.dbinary(_foreign_helper.JS('num', '#', other), '<', 0)) 822 if (dart.notNull(other) < 0)
823 throw new core.ArgumentError(other); 823 throw new core.ArgumentError(other);
824 return this._shrBothPositive(other); 824 return this._shrBothPositive(other);
825 } 825 }
826 _shrBothPositive(other) { 826 _shrBothPositive(other) {
827 return dart.as(_foreign_helper.JS('bool', '# > 31', other) ? 0 : _foreign_ helper.JS('JSUInt32', '# >>> #', this, other), core.num); 827 return dart.as(other > 31 ? 0 : this >>> other, core.num);
828 } 828 }
829 ['&'](other) { 829 ['&'](other) {
830 if (!dart.is(other, core.num)) 830 if (!dart.is(other, core.num))
831 throw new core.ArgumentError(other); 831 throw new core.ArgumentError(other);
832 return dart.as(_foreign_helper.JS('JSUInt32', '(# & #) >>> 0', this, other ), core.num); 832 return dart.as((this & other) >>> 0, core.num);
833 } 833 }
834 ['|'](other) { 834 ['|'](other) {
835 if (!dart.is(other, core.num)) 835 if (!dart.is(other, core.num))
836 throw new core.ArgumentError(other); 836 throw new core.ArgumentError(other);
837 return dart.as(_foreign_helper.JS('JSUInt32', '(# | #) >>> 0', this, other ), core.num); 837 return dart.as((this | other) >>> 0, core.num);
838 } 838 }
839 ['^'](other) { 839 ['^'](other) {
840 if (!dart.is(other, core.num)) 840 if (!dart.is(other, core.num))
841 throw new core.ArgumentError(other); 841 throw new core.ArgumentError(other);
842 return dart.as(_foreign_helper.JS('JSUInt32', '(# ^ #) >>> 0', this, other ), core.num); 842 return dart.as((this ^ other) >>> 0, core.num);
843 } 843 }
844 ['<'](other) { 844 ['<'](other) {
845 if (!dart.is(other, core.num)) 845 if (!dart.is(other, core.num))
846 throw new core.ArgumentError(other); 846 throw new core.ArgumentError(other);
847 return dart.as(_foreign_helper.JS('bool', '# < #', this, other), core.bool ); 847 return this < other;
848 } 848 }
849 ['>'](other) { 849 ['>'](other) {
850 if (!dart.is(other, core.num)) 850 if (!dart.is(other, core.num))
851 throw new core.ArgumentError(other); 851 throw new core.ArgumentError(other);
852 return dart.as(_foreign_helper.JS('bool', '# > #', this, other), core.bool ); 852 return this > other;
853 } 853 }
854 ['<='](other) { 854 ['<='](other) {
855 if (!dart.is(other, core.num)) 855 if (!dart.is(other, core.num))
856 throw new core.ArgumentError(other); 856 throw new core.ArgumentError(other);
857 return dart.as(_foreign_helper.JS('bool', '# <= #', this, other), core.boo l); 857 return this <= other;
858 } 858 }
859 ['>='](other) { 859 ['>='](other) {
860 if (!dart.is(other, core.num)) 860 if (!dart.is(other, core.num))
861 throw new core.ArgumentError(other); 861 throw new core.ArgumentError(other);
862 return dart.as(_foreign_helper.JS('bool', '# >= #', this, other), core.boo l); 862 return this >= other;
863 } 863 }
864 get runtimeType() { 864 get runtimeType() {
865 return core.num; 865 return core.num;
866 } 866 }
867 } 867 }
868 JSNumber._MIN_INT32 = -2147483648; 868 JSNumber._MIN_INT32 = -2147483648;
869 JSNumber._MAX_INT32 = 2147483647; 869 JSNumber._MAX_INT32 = 2147483647;
870 class JSInt extends JSNumber { 870 class JSInt extends JSNumber {
871 JSInt() { 871 JSInt() {
872 super.JSNumber(); 872 super.JSNumber();
(...skipping 21 matching lines...) Expand all
894 } 894 }
895 static _bitCount(i) { 895 static _bitCount(i) {
896 i = dart.as(dart.dbinary(_shru(i, 0), '-', dart.dbinary(_shru(i, 1), '&', 1431655765)), core.int); 896 i = dart.as(dart.dbinary(_shru(i, 0), '-', dart.dbinary(_shru(i, 1), '&', 1431655765)), core.int);
897 i = dart.notNull((i & 858993459)['+'](dart.dbinary(_shru(i, 2), '&', 85899 3459))); 897 i = dart.notNull((i & 858993459)['+'](dart.dbinary(_shru(i, 2), '&', 85899 3459)));
898 i = 252645135 & dart.notNull(i['+'](_shru(i, 4))); 898 i = 252645135 & dart.notNull(i['+'](_shru(i, 4)));
899 i = dart.as(_shru(i, 8), core.int); 899 i = dart.as(_shru(i, 8), core.int);
900 i = dart.as(_shru(i, 16), core.int); 900 i = dart.as(_shru(i, 16), core.int);
901 return i & 63; 901 return i & 63;
902 } 902 }
903 static _shru(value, shift) { 903 static _shru(value, shift) {
904 return _foreign_helper.JS('int', '# >>> #', value, shift); 904 return value >>> shift;
905 } 905 }
906 static _shrs(value, shift) { 906 static _shrs(value, shift) {
907 return _foreign_helper.JS('int', '# >> #', value, shift); 907 return value >> shift;
908 } 908 }
909 static _ors(a, b) { 909 static _ors(a, b) {
910 return _foreign_helper.JS('int', '# | #', a, b); 910 return a | b;
911 } 911 }
912 static _spread(i) { 912 static _spread(i) {
913 i = dart.as(_ors(i, dart.as(_shrs(i, 1), core.int)), core.int); 913 i = dart.as(_ors(i, dart.as(_shrs(i, 1), core.int)), core.int);
914 i = dart.as(_ors(i, dart.as(_shrs(i, 2), core.int)), core.int); 914 i = dart.as(_ors(i, dart.as(_shrs(i, 2), core.int)), core.int);
915 i = dart.as(_ors(i, dart.as(_shrs(i, 4), core.int)), core.int); 915 i = dart.as(_ors(i, dart.as(_shrs(i, 4), core.int)), core.int);
916 i = dart.as(_ors(i, dart.as(_shrs(i, 8), core.int)), core.int); 916 i = dart.as(_ors(i, dart.as(_shrs(i, 8), core.int)), core.int);
917 i = dart.as(_shru(dart.as(_ors(i, dart.as(_shrs(i, 16), core.int)), core.i nt), 0), core.int); 917 i = dart.as(_shru(dart.as(_ors(i, dart.as(_shrs(i, 16), core.int)), core.i nt), 0), core.int);
918 return i; 918 return i;
919 } 919 }
920 get runtimeType() { 920 get runtimeType() {
921 return core.int; 921 return core.int;
922 } 922 }
923 ['~']() { 923 ['~']() {
924 return dart.as(_foreign_helper.JS('JSUInt32', '(~#) >>> 0', this), core.in t); 924 return dart.as(~this >>> 0, core.int);
925 } 925 }
926 } 926 }
927 class JSDouble extends JSNumber { 927 class JSDouble extends JSNumber {
928 JSDouble() { 928 JSDouble() {
929 super.JSNumber(); 929 super.JSNumber();
930 } 930 }
931 get runtimeType() { 931 get runtimeType() {
932 return core.double; 932 return core.double;
933 } 933 }
934 } 934 }
935 class JSPositiveInt extends JSInt { 935 class JSPositiveInt extends JSInt {
936 } 936 }
937 class JSUInt32 extends JSPositiveInt { 937 class JSUInt32 extends JSPositiveInt {
938 } 938 }
939 class JSUInt31 extends JSUInt32 { 939 class JSUInt31 extends JSUInt32 {
940 } 940 }
941 class JSString extends Interceptor { 941 class JSString extends Interceptor {
942 JSString() { 942 JSString() {
943 super.Interceptor(); 943 super.Interceptor();
944 } 944 }
945 codeUnitAt(index) { 945 codeUnitAt(index) {
946 if (!(typeof index == number)) 946 if (!(typeof index == number))
947 throw new core.ArgumentError(index); 947 throw new core.ArgumentError(index);
948 if (index < 0) 948 if (index < 0)
949 throw new core.RangeError.value(index); 949 throw new core.RangeError.value(index);
950 if (index >= this.length) 950 if (index >= this.length)
951 throw new core.RangeError.value(index); 951 throw new core.RangeError.value(index);
952 return dart.as(_foreign_helper.JS('JSUInt31', '#.charCodeAt(#)', this, ind ex), core.int); 952 return dart.as(this.charCodeAt(index), core.int);
953 } 953 }
954 allMatches(string, start) { 954 allMatches(string, start) {
955 if (start === void 0) 955 if (start === void 0)
956 start = 0; 956 start = 0;
957 _js_helper.checkString(string); 957 _js_helper.checkString(string);
958 _js_helper.checkInt(start); 958 _js_helper.checkInt(start);
959 if (dart.notNull(0 > start) || dart.notNull(start > string.length)) { 959 if (dart.notNull(0 > start) || dart.notNull(start > string.length)) {
960 throw new core.RangeError.range(start, 0, string.length); 960 throw new core.RangeError.range(start, 0, string.length);
961 } 961 }
962 return _js_helper.allMatchesInStringUnchecked(this, string, start); 962 return _js_helper.allMatchesInStringUnchecked(this, string, start);
963 } 963 }
964 matchAsPrefix(string, start) { 964 matchAsPrefix(string, start) {
965 if (start === void 0) 965 if (start === void 0)
966 start = 0; 966 start = 0;
967 if (dart.notNull(start < 0) || dart.notNull(start > string.length)) { 967 if (dart.notNull(start < 0) || dart.notNull(start > string.length)) {
968 throw new core.RangeError.range(start, 0, string.length); 968 throw new core.RangeError.range(start, 0, string.length);
969 } 969 }
970 if (start + this.length > string.length) 970 if (start + this.length > string.length)
971 return null; 971 return null;
972 for (let i = 0; i < this.length; i++) { 972 for (let i = 0; i < this.length; i++) {
973 if (string.codeUnitAt(start + i) !== this.codeUnitAt(i)) { 973 if (string.codeUnitAt(start + i) !== this.codeUnitAt(i)) {
974 return null; 974 return null;
975 } 975 }
976 } 976 }
977 return new _js_helper.StringMatch(start, string, this); 977 return new _js_helper.StringMatch(start, string, this);
978 } 978 }
979 ['+'](other) { 979 ['+'](other) {
980 if (!(typeof other == string)) 980 if (!(typeof other == string))
981 throw new core.ArgumentError(other); 981 throw new core.ArgumentError(other);
982 return dart.as(_foreign_helper.JS('String', '# + #', this, other), core.St ring); 982 return this + other;
983 } 983 }
984 endsWith(other) { 984 endsWith(other) {
985 _js_helper.checkString(other); 985 _js_helper.checkString(other);
986 let otherLength = other.length; 986 let otherLength = other.length;
987 if (otherLength > this.length) 987 if (otherLength > this.length)
988 return false; 988 return false;
989 return dart.equals(other, this.substring(this.length - otherLength)); 989 return dart.equals(other, this.substring(this.length - otherLength));
990 } 990 }
991 replaceAll(from, to) { 991 replaceAll(from, to) {
992 _js_helper.checkString(to); 992 _js_helper.checkString(to);
(...skipping 13 matching lines...) Expand all
1006 _js_helper.checkString(to); 1006 _js_helper.checkString(to);
1007 _js_helper.checkInt(startIndex); 1007 _js_helper.checkInt(startIndex);
1008 if (dart.notNull(startIndex < 0) || dart.notNull(startIndex > this.length) ) { 1008 if (dart.notNull(startIndex < 0) || dart.notNull(startIndex > this.length) ) {
1009 throw new core.RangeError.range(startIndex, 0, this.length); 1009 throw new core.RangeError.range(startIndex, 0, this.length);
1010 } 1010 }
1011 return dart.as(_js_helper.stringReplaceFirstUnchecked(this, from, to, star tIndex), core.String); 1011 return dart.as(_js_helper.stringReplaceFirstUnchecked(this, from, to, star tIndex), core.String);
1012 } 1012 }
1013 split(pattern) { 1013 split(pattern) {
1014 _js_helper.checkNull(pattern); 1014 _js_helper.checkNull(pattern);
1015 if (typeof pattern == string) { 1015 if (typeof pattern == string) {
1016 return dart.as(_foreign_helper.JS('JSExtendableArray', '#.split(#)', thi s, pattern), core.List$(core.String)); 1016 return dart.as(this.split(pattern), core.List$(core.String));
1017 } else if (dart.notNull(dart.is(pattern, _js_helper.JSSyntaxRegExp)) && da rt.notNull(_js_helper.regExpCaptureCount(pattern) === 0)) { 1017 } else if (dart.notNull(dart.is(pattern, _js_helper.JSSyntaxRegExp)) && da rt.notNull(_js_helper.regExpCaptureCount(pattern) === 0)) {
1018 let re = _js_helper.regExpGetNative(pattern); 1018 let re = _js_helper.regExpGetNative(pattern);
1019 return dart.as(_foreign_helper.JS('JSExtendableArray', '#.split(#)', thi s, re), core.List$(core.String)); 1019 return dart.as(this.split(re), core.List$(core.String));
1020 } else { 1020 } else {
1021 return this._defaultSplit(pattern); 1021 return this._defaultSplit(pattern);
1022 } 1022 }
1023 } 1023 }
1024 _defaultSplit(pattern) { 1024 _defaultSplit(pattern) {
1025 let result = new List.from([]); 1025 let result = new List.from([]);
1026 let start = 0; 1026 let start = 0;
1027 let length = 1; 1027 let length = 1;
1028 for (let match of pattern.allMatches(this)) { 1028 for (let match of pattern.allMatches(this)) {
1029 let matchStart = dart.as(dart.dload(match, 'start'), core.int); 1029 let matchStart = dart.as(dart.dload(match, 'start'), core.int);
(...skipping 17 matching lines...) Expand all
1047 _js_helper.checkInt(index); 1047 _js_helper.checkInt(index);
1048 if (dart.notNull(index < 0) || dart.notNull(index > this.length)) { 1048 if (dart.notNull(index < 0) || dart.notNull(index > this.length)) {
1049 throw new core.RangeError.range(index, 0, this.length); 1049 throw new core.RangeError.range(index, 0, this.length);
1050 } 1050 }
1051 if (typeof pattern == string) { 1051 if (typeof pattern == string) {
1052 let other = pattern; 1052 let other = pattern;
1053 let otherLength = other.length; 1053 let otherLength = other.length;
1054 let endIndex = index + otherLength; 1054 let endIndex = index + otherLength;
1055 if (endIndex > this.length) 1055 if (endIndex > this.length)
1056 return false; 1056 return false;
1057 return dart.equals(other, _foreign_helper.JS('String', '#.substring(#, # )', this, index, endIndex)); 1057 return dart.equals(other, this.substring(index, endIndex));
1058 } 1058 }
1059 return pattern.matchAsPrefix(this, index) !== null; 1059 return pattern.matchAsPrefix(this, index) !== null;
1060 } 1060 }
1061 substring(startIndex, endIndex) { 1061 substring(startIndex, endIndex) {
1062 if (endIndex === void 0) 1062 if (endIndex === void 0)
1063 endIndex = null; 1063 endIndex = null;
1064 _js_helper.checkInt(startIndex); 1064 _js_helper.checkInt(startIndex);
1065 if (endIndex === null) 1065 if (endIndex === null)
1066 endIndex = this.length; 1066 endIndex = this.length;
1067 _js_helper.checkInt(endIndex); 1067 _js_helper.checkInt(endIndex);
1068 if (startIndex < 0) 1068 if (startIndex < 0)
1069 throw new core.RangeError.value(startIndex); 1069 throw new core.RangeError.value(startIndex);
1070 if (startIndex > endIndex) 1070 if (startIndex > endIndex)
1071 throw new core.RangeError.value(startIndex); 1071 throw new core.RangeError.value(startIndex);
1072 if (endIndex > this.length) 1072 if (endIndex > this.length)
1073 throw new core.RangeError.value(endIndex); 1073 throw new core.RangeError.value(endIndex);
1074 return dart.as(_foreign_helper.JS('String', '#.substring(#, #)', this, sta rtIndex, endIndex), core.String); 1074 return this.substring(startIndex, endIndex);
1075 } 1075 }
1076 toLowerCase() { 1076 toLowerCase() {
1077 return dart.as(_foreign_helper.JS('String', '#.toLowerCase()', this), core .String); 1077 return this.toLowerCase();
1078 } 1078 }
1079 toUpperCase() { 1079 toUpperCase() {
1080 return dart.as(_foreign_helper.JS('String', '#.toUpperCase()', this), core .String); 1080 return this.toUpperCase();
1081 } 1081 }
1082 static _isWhitespace(codeUnit) { 1082 static _isWhitespace(codeUnit) {
1083 if (codeUnit < 256) { 1083 if (codeUnit < 256) {
1084 switch (codeUnit) { 1084 switch (codeUnit) {
1085 case 9: 1085 case 9:
1086 case 10: 1086 case 10:
1087 case 11: 1087 case 11:
1088 case 12: 1088 case 12:
1089 case 13: 1089 case 13:
1090 case 32: 1090 case 32:
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
1139 let codeUnit = string.codeUnitAt(index - 1); 1139 let codeUnit = string.codeUnitAt(index - 1);
1140 if (dart.notNull(dart.notNull(codeUnit !== SPACE) && dart.notNull(codeUn it !== CARRIAGE_RETURN)) && dart.notNull(!dart.notNull(_isWhitespace(codeUnit))) ) { 1140 if (dart.notNull(dart.notNull(codeUnit !== SPACE) && dart.notNull(codeUn it !== CARRIAGE_RETURN)) && dart.notNull(!dart.notNull(_isWhitespace(codeUnit))) ) {
1141 break; 1141 break;
1142 } 1142 }
1143 index--; 1143 index--;
1144 } 1144 }
1145 return index; 1145 return index;
1146 } 1146 }
1147 trim() { 1147 trim() {
1148 let NEL = 133; 1148 let NEL = 133;
1149 let result = dart.as(_foreign_helper.JS('String', '#.trim()', this), core. String); 1149 let result = this.trim();
1150 if (result.length === 0) 1150 if (result.length === 0)
1151 return result; 1151 return result;
1152 let firstCode = result.codeUnitAt(0); 1152 let firstCode = result.codeUnitAt(0);
1153 let startIndex = 0; 1153 let startIndex = 0;
1154 if (firstCode === NEL) { 1154 if (firstCode === NEL) {
1155 startIndex = _skipLeadingWhitespace(result, 1); 1155 startIndex = _skipLeadingWhitespace(result, 1);
1156 if (startIndex === result.length) 1156 if (startIndex === result.length)
1157 return ""; 1157 return "";
1158 } 1158 }
1159 let endIndex = result.length; 1159 let endIndex = result.length;
1160 let lastCode = result.codeUnitAt(endIndex - 1); 1160 let lastCode = result.codeUnitAt(endIndex - 1);
1161 if (lastCode === NEL) { 1161 if (lastCode === NEL) {
1162 endIndex = _skipTrailingWhitespace(result, endIndex - 1); 1162 endIndex = _skipTrailingWhitespace(result, endIndex - 1);
1163 } 1163 }
1164 if (dart.notNull(startIndex === 0) && dart.notNull(endIndex === result.len gth)) 1164 if (dart.notNull(startIndex === 0) && dart.notNull(endIndex === result.len gth))
1165 return result; 1165 return result;
1166 return dart.as(_foreign_helper.JS('String', '#.substring(#, #)', result, s tartIndex, endIndex), core.String); 1166 return result.substring(startIndex, endIndex);
1167 } 1167 }
1168 trimLeft() { 1168 trimLeft() {
1169 let NEL = 133; 1169 let NEL = 133;
1170 let result = null; 1170 let result = null;
1171 let startIndex = 0; 1171 let startIndex = 0;
1172 if (_foreign_helper.JS('bool', 'typeof #.trimLeft != "undefined"', this)) { 1172 if (typeof this.trimLeft != "undefined") {
1173 result = dart.as(_foreign_helper.JS('String', '#.trimLeft()', this), cor e.String); 1173 result = this.trimLeft();
1174 if (result.length === 0) 1174 if (result.length === 0)
1175 return result; 1175 return result;
1176 let firstCode = result.codeUnitAt(0); 1176 let firstCode = result.codeUnitAt(0);
1177 if (firstCode === NEL) { 1177 if (firstCode === NEL) {
1178 startIndex = _skipLeadingWhitespace(result, 1); 1178 startIndex = _skipLeadingWhitespace(result, 1);
1179 } 1179 }
1180 } else { 1180 } else {
1181 result = this; 1181 result = this;
1182 startIndex = _skipLeadingWhitespace(this, 0); 1182 startIndex = _skipLeadingWhitespace(this, 0);
1183 } 1183 }
1184 if (startIndex === 0) 1184 if (startIndex === 0)
1185 return result; 1185 return result;
1186 if (startIndex === result.length) 1186 if (startIndex === result.length)
1187 return ""; 1187 return "";
1188 return dart.as(_foreign_helper.JS('String', '#.substring(#)', result, star tIndex), core.String); 1188 return result.substring(startIndex);
1189 } 1189 }
1190 trimRight() { 1190 trimRight() {
1191 let NEL = 133; 1191 let NEL = 133;
1192 let result = null; 1192 let result = null;
1193 let endIndex = null; 1193 let endIndex = null;
1194 if (_foreign_helper.JS('bool', 'typeof #.trimRight != "undefined"', this)) { 1194 if (typeof this.trimRight != "undefined") {
1195 result = dart.as(_foreign_helper.JS('String', '#.trimRight()', this), co re.String); 1195 result = this.trimRight();
1196 endIndex = result.length; 1196 endIndex = result.length;
1197 if (endIndex === 0) 1197 if (endIndex === 0)
1198 return result; 1198 return result;
1199 let lastCode = result.codeUnitAt(endIndex - 1); 1199 let lastCode = result.codeUnitAt(endIndex - 1);
1200 if (lastCode === NEL) { 1200 if (lastCode === NEL) {
1201 endIndex = _skipTrailingWhitespace(result, endIndex - 1); 1201 endIndex = _skipTrailingWhitespace(result, endIndex - 1);
1202 } 1202 }
1203 } else { 1203 } else {
1204 result = this; 1204 result = this;
1205 endIndex = _skipTrailingWhitespace(this, this.length); 1205 endIndex = _skipTrailingWhitespace(this, this.length);
1206 } 1206 }
1207 if (endIndex === result.length) 1207 if (endIndex === result.length)
1208 return result; 1208 return result;
1209 if (endIndex === 0) 1209 if (endIndex === 0)
1210 return ""; 1210 return "";
1211 return dart.as(_foreign_helper.JS('String', '#.substring(#, #)', result, 0 , endIndex), core.String); 1211 return result.substring(0, endIndex);
1212 } 1212 }
1213 ['*'](times) { 1213 ['*'](times) {
1214 if (0 >= times) 1214 if (0 >= times)
1215 return ''; 1215 return '';
1216 if (dart.notNull(times === 1) || dart.notNull(this.length === 0)) 1216 if (dart.notNull(times === 1) || dart.notNull(this.length === 0))
1217 return this; 1217 return this;
1218 if (times !== _foreign_helper.JS('JSUInt32', '# >>> 0', times)) { 1218 if (times !== times >>> 0) {
1219 throw new core.OutOfMemoryError(); 1219 throw new core.OutOfMemoryError();
1220 } 1220 }
1221 let result = ''; 1221 let result = '';
1222 let s = this; 1222 let s = this;
1223 while (true) { 1223 while (true) {
1224 if ((times & 1) === 1) 1224 if ((times & 1) === 1)
1225 result = s['+'](result); 1225 result = s['+'](result);
1226 times = dart.as(_foreign_helper.JS('JSUInt31', '# >>> 1', times), core.i nt); 1226 times = dart.as(times >>> 1, core.int);
1227 if (times === 0) 1227 if (times === 0)
1228 break; 1228 break;
1229 s = s; 1229 s = s;
1230 } 1230 }
1231 return result; 1231 return result;
1232 } 1232 }
1233 padLeft(width, padding) { 1233 padLeft(width, padding) {
1234 if (padding === void 0) 1234 if (padding === void 0)
1235 padding = ' '; 1235 padding = ' ';
1236 let delta = width - this.length; 1236 let delta = width - this.length;
(...skipping 18 matching lines...) Expand all
1255 indexOf(pattern, start) { 1255 indexOf(pattern, start) {
1256 if (start === void 0) 1256 if (start === void 0)
1257 start = 0; 1257 start = 0;
1258 _js_helper.checkNull(pattern); 1258 _js_helper.checkNull(pattern);
1259 if (!(typeof start == number)) 1259 if (!(typeof start == number))
1260 throw new core.ArgumentError(start); 1260 throw new core.ArgumentError(start);
1261 if (dart.notNull(start < 0) || dart.notNull(start > this.length)) { 1261 if (dart.notNull(start < 0) || dart.notNull(start > this.length)) {
1262 throw new core.RangeError.range(start, 0, this.length); 1262 throw new core.RangeError.range(start, 0, this.length);
1263 } 1263 }
1264 if (typeof pattern == string) { 1264 if (typeof pattern == string) {
1265 return dart.as(_foreign_helper.JS('int', '#.indexOf(#, #)', this, patter n, start), core.int); 1265 return this.indexOf(pattern, start);
1266 } 1266 }
1267 if (dart.is(pattern, _js_helper.JSSyntaxRegExp)) { 1267 if (dart.is(pattern, _js_helper.JSSyntaxRegExp)) {
1268 let re = pattern; 1268 let re = pattern;
1269 let match = _js_helper.firstMatchAfter(re, this, start); 1269 let match = _js_helper.firstMatchAfter(re, this, start);
1270 return match === null ? -1 : match.start; 1270 return match === null ? -1 : match.start;
1271 } 1271 }
1272 for (let i = start; i <= this.length; i++) { 1272 for (let i = start; i <= this.length; i++) {
1273 if (pattern.matchAsPrefix(this, i) !== null) 1273 if (pattern.matchAsPrefix(this, i) !== null)
1274 return i; 1274 return i;
1275 } 1275 }
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
1310 } 1310 }
1311 get isEmpty() { 1311 get isEmpty() {
1312 return this.length === 0; 1312 return this.length === 0;
1313 } 1313 }
1314 get isNotEmpty() { 1314 get isNotEmpty() {
1315 return !dart.notNull(this.isEmpty); 1315 return !dart.notNull(this.isEmpty);
1316 } 1316 }
1317 compareTo(other) { 1317 compareTo(other) {
1318 if (!(typeof other == string)) 1318 if (!(typeof other == string))
1319 throw new core.ArgumentError(other); 1319 throw new core.ArgumentError(other);
1320 return dart.equals(this, other) ? 0 : _foreign_helper.JS('bool', '# < #', this, other) ? -1 : 1; 1320 return dart.equals(this, other) ? 0 : this < other ? -1 : 1;
1321 } 1321 }
1322 toString() { 1322 toString() {
1323 return this; 1323 return this;
1324 } 1324 }
1325 get hashCode() { 1325 get hashCode() {
1326 let hash = 0; 1326 let hash = 0;
1327 for (let i = 0; i < this.length; i++) { 1327 for (let i = 0; i < this.length; i++) {
1328 hash = 536870911 & dart.notNull(hash['+'](_foreign_helper.JS('int', '#.c harCodeAt(#)', this, i))); 1328 hash = 536870911 & hash + this.charCodeAt(i);
1329 hash = 536870911 & hash + ((524287 & hash) << 10); 1329 hash = 536870911 & hash + ((524287 & hash) << 10);
1330 hash = dart.as(_foreign_helper.JS('int', '# ^ (# >> 6)', hash, hash), co re.int); 1330 hash = hash ^ hash >> 6;
1331 } 1331 }
1332 hash = 536870911 & hash + ((67108863 & hash) << 3); 1332 hash = 536870911 & hash + ((67108863 & hash) << 3);
1333 hash = dart.as(_foreign_helper.JS('int', '# ^ (# >> 11)', hash, hash), cor e.int); 1333 hash = hash ^ hash >> 11;
1334 return 536870911 & hash + ((16383 & hash) << 15); 1334 return 536870911 & hash + ((16383 & hash) << 15);
1335 } 1335 }
1336 get runtimeType() { 1336 get runtimeType() {
1337 return core.String; 1337 return core.String;
1338 } 1338 }
1339 get length() { 1339 get length() {
1340 return dart.as(_foreign_helper.JS('int', '#.length', this), core.int); 1340 return this.length;
1341 } 1341 }
1342 get(index) { 1342 get(index) {
1343 if (!(typeof index == number)) 1343 if (!(typeof index == number))
1344 throw new core.ArgumentError(index); 1344 throw new core.ArgumentError(index);
1345 if (dart.notNull(index >= this.length) || dart.notNull(index < 0)) 1345 if (dart.notNull(index >= this.length) || dart.notNull(index < 0))
1346 throw new core.RangeError.value(index); 1346 throw new core.RangeError.value(index);
1347 return dart.as(_foreign_helper.JS('String', '#[#]', this, index), core.Str ing); 1347 return this[index];
1348 } 1348 }
1349 } 1349 }
1350 class _CodeUnits extends _internal.UnmodifiableListBase$(core.int) { 1350 class _CodeUnits extends _internal.UnmodifiableListBase$(core.int) {
1351 _CodeUnits(_string) { 1351 _CodeUnits(_string) {
1352 this._string = _string; 1352 this._string = _string;
1353 super.UnmodifiableListBase(); 1353 super.UnmodifiableListBase();
1354 } 1354 }
1355 get length() { 1355 get length() {
1356 return this._string.length; 1356 return this._string.length;
1357 } 1357 }
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
1392 _interceptors.JSExtendableArray = JSExtendableArray; 1392 _interceptors.JSExtendableArray = JSExtendableArray;
1393 _interceptors.JSExtendableArray$ = JSExtendableArray$; 1393 _interceptors.JSExtendableArray$ = JSExtendableArray$;
1394 _interceptors.JSNumber = JSNumber; 1394 _interceptors.JSNumber = JSNumber;
1395 _interceptors.JSInt = JSInt; 1395 _interceptors.JSInt = JSInt;
1396 _interceptors.JSDouble = JSDouble; 1396 _interceptors.JSDouble = JSDouble;
1397 _interceptors.JSPositiveInt = JSPositiveInt; 1397 _interceptors.JSPositiveInt = JSPositiveInt;
1398 _interceptors.JSUInt32 = JSUInt32; 1398 _interceptors.JSUInt32 = JSUInt32;
1399 _interceptors.JSUInt31 = JSUInt31; 1399 _interceptors.JSUInt31 = JSUInt31;
1400 _interceptors.JSString = JSString; 1400 _interceptors.JSString = JSString;
1401 })(_interceptors || (_interceptors = {})); 1401 })(_interceptors || (_interceptors = {}));
OLDNEW
« no previous file with comments | « test/codegen/expect/_foreign_helper/_foreign_helper.js ('k') | test/codegen/expect/_isolate_helper/_isolate_helper.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698