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

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

Issue 1178523004: fixes #215, removes special case for length (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | lib/runtime/dart/_internal.js » ('j') | lib/src/codegen/js_codegen.dart » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 dart.library('dart/_interceptors', null, /* Imports */[ 1 dart.library('dart/_interceptors', null, /* Imports */[
2 'dart/core', 2 'dart/core',
3 'dart/_internal', 3 'dart/_internal',
4 'dart/collection', 4 'dart/collection',
5 'dart/math' 5 'dart/math'
6 ], /* Lazy imports */[ 6 ], /* Lazy imports */[
7 'dart/_js_helper' 7 'dart/_js_helper'
8 ], function(exports, core, _internal, collection, math, _js_helper) { 8 ], function(exports, core, _internal, collection, math, _js_helper) {
9 'use strict'; 9 'use strict';
10 let JSArray$ = dart.generic(function(E) { 10 let JSArray$ = dart.generic(function(E) {
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 } 88 }
89 } 89 }
90 [dartx.add](value) { 90 [dartx.add](value) {
91 dart.as(value, E); 91 dart.as(value, E);
92 this[dartx.checkGrowable]('add'); 92 this[dartx.checkGrowable]('add');
93 this.push(value); 93 this.push(value);
94 } 94 }
95 [dartx.removeAt](index) { 95 [dartx.removeAt](index) {
96 if (!(typeof index == 'number')) 96 if (!(typeof index == 'number'))
97 throw new core.ArgumentError(index); 97 throw new core.ArgumentError(index);
98 if (dart.notNull(index) < 0 || dart.notNull(index) >= dart.notNull(this. length)) { 98 if (dart.notNull(index) < 0 || dart.notNull(index) >= dart.notNull(this[ dartx.length])) {
99 throw new core.RangeError.value(index); 99 throw new core.RangeError.value(index);
100 } 100 }
101 this[dartx.checkGrowable]('removeAt'); 101 this[dartx.checkGrowable]('removeAt');
102 return this.splice(index, 1)[0]; 102 return this.splice(index, 1)[0];
103 } 103 }
104 [dartx.insert](index, value) { 104 [dartx.insert](index, value) {
105 dart.as(value, E); 105 dart.as(value, E);
106 if (!(typeof index == 'number')) 106 if (!(typeof index == 'number'))
107 throw new core.ArgumentError(index); 107 throw new core.ArgumentError(index);
108 if (dart.notNull(index) < 0 || dart.notNull(index) > dart.notNull(this.l ength)) { 108 if (dart.notNull(index) < 0 || dart.notNull(index) > dart.notNull(this[d artx.length])) {
109 throw new core.RangeError.value(index); 109 throw new core.RangeError.value(index);
110 } 110 }
111 this[dartx.checkGrowable]('insert'); 111 this[dartx.checkGrowable]('insert');
112 this.splice(index, 0, value); 112 this.splice(index, 0, value);
113 } 113 }
114 [dartx.insertAll](index, iterable) { 114 [dartx.insertAll](index, iterable) {
115 dart.as(iterable, core.Iterable$(E)); 115 dart.as(iterable, core.Iterable$(E));
116 this[dartx.checkGrowable]('insertAll'); 116 this[dartx.checkGrowable]('insertAll');
117 _internal.IterableMixinWorkaround.insertAllList(this, index, iterable); 117 _internal.IterableMixinWorkaround.insertAllList(this, index, iterable);
118 } 118 }
119 [dartx.setAll](index, iterable) { 119 [dartx.setAll](index, iterable) {
120 dart.as(iterable, core.Iterable$(E)); 120 dart.as(iterable, core.Iterable$(E));
121 _internal.IterableMixinWorkaround.setAllList(this, index, iterable); 121 _internal.IterableMixinWorkaround.setAllList(this, index, iterable);
122 } 122 }
123 [dartx.removeLast]() { 123 [dartx.removeLast]() {
124 this[dartx.checkGrowable]('removeLast'); 124 this[dartx.checkGrowable]('removeLast');
125 if (this.length == 0) 125 if (this[dartx.length] == 0)
126 throw new core.RangeError.value(-1); 126 throw new core.RangeError.value(-1);
127 return dart.as(this.pop(), E); 127 return dart.as(this.pop(), E);
128 } 128 }
129 [dartx.remove](element) { 129 [dartx.remove](element) {
130 this[dartx.checkGrowable]('remove'); 130 this[dartx.checkGrowable]('remove');
131 for (let i = 0; dart.notNull(i) < dart.notNull(this.length); i = dart.no tNull(i) + 1) { 131 for (let i = 0; dart.notNull(i) < dart.notNull(this[dartx.length]); i = dart.notNull(i) + 1) {
132 if (dart.equals(this[dartx.get](i), element)) { 132 if (dart.equals(this[dartx.get](i), element)) {
133 this.splice(i, 1); 133 this.splice(i, 1);
134 return true; 134 return true;
135 } 135 }
136 } 136 }
137 return false; 137 return false;
138 } 138 }
139 [dartx.removeWhere](test) { 139 [dartx.removeWhere](test) {
140 dart.as(test, dart.functionType(core.bool, [E])); 140 dart.as(test, dart.functionType(core.bool, [E]));
141 _internal.IterableMixinWorkaround.removeWhereList(this, test); 141 _internal.IterableMixinWorkaround.removeWhereList(this, test);
(...skipping 10 matching lines...) Expand all
152 dart.as(f, dart.functionType(core.Iterable, [E])); 152 dart.as(f, dart.functionType(core.Iterable, [E]));
153 return _internal.IterableMixinWorkaround.expand(this, f); 153 return _internal.IterableMixinWorkaround.expand(this, f);
154 } 154 }
155 [dartx.addAll](collection) { 155 [dartx.addAll](collection) {
156 dart.as(collection, core.Iterable$(E)); 156 dart.as(collection, core.Iterable$(E));
157 for (let e of collection) { 157 for (let e of collection) {
158 this[dartx.add](e); 158 this[dartx.add](e);
159 } 159 }
160 } 160 }
161 [dartx.clear]() { 161 [dartx.clear]() {
162 this.length = 0; 162 this[dartx.length] = 0;
163 } 163 }
164 [dartx.forEach](f) { 164 [dartx.forEach](f) {
165 dart.as(f, dart.functionType(dart.void, [E])); 165 dart.as(f, dart.functionType(dart.void, [E]));
166 let length = this.length; 166 let length = this[dartx.length];
167 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) { 167 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) {
168 f(dart.as(this[i], E)); 168 f(dart.as(this[i], E));
169 if (length != this.length) { 169 if (length != this[dartx.length]) {
170 throw new core.ConcurrentModificationError(this); 170 throw new core.ConcurrentModificationError(this);
171 } 171 }
172 } 172 }
173 } 173 }
174 [dartx.map](f) { 174 [dartx.map](f) {
175 dart.as(f, dart.functionType(core.Object, [E])); 175 dart.as(f, dart.functionType(core.Object, [E]));
176 return _internal.IterableMixinWorkaround.mapList(this, f); 176 return _internal.IterableMixinWorkaround.mapList(this, f);
177 } 177 }
178 [dartx.join](separator) { 178 [dartx.join](separator) {
179 if (separator === void 0) 179 if (separator === void 0)
180 separator = ""; 180 separator = "";
181 let list = core.List.new(this.length); 181 let list = core.List.new(this[dartx.length]);
182 for (let i = 0; dart.notNull(i) < dart.notNull(this.length); i = dart.no tNull(i) + 1) { 182 for (let i = 0; dart.notNull(i) < dart.notNull(this[dartx.length]); i = dart.notNull(i) + 1) {
183 list[dartx.set](i, `${this[dartx.get](i)}`); 183 list[dartx.set](i, `${this[dartx.get](i)}`);
184 } 184 }
185 return list.join(separator); 185 return list.join(separator);
186 } 186 }
187 [dartx.take](n) { 187 [dartx.take](n) {
188 return new (_internal.IterableMixinWorkaround$(E))().takeList(this, n); 188 return new (_internal.IterableMixinWorkaround$(E))().takeList(this, n);
189 } 189 }
190 [dartx.takeWhile](test) { 190 [dartx.takeWhile](test) {
191 dart.as(test, dart.functionType(core.bool, [E])); 191 dart.as(test, dart.functionType(core.bool, [E]));
192 return new (_internal.IterableMixinWorkaround$(E))().takeWhile(this, tes t); 192 return new (_internal.IterableMixinWorkaround$(E))().takeWhile(this, tes t);
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
224 } 224 }
225 [dartx.elementAt](index) { 225 [dartx.elementAt](index) {
226 return this[dartx.get](index); 226 return this[dartx.get](index);
227 } 227 }
228 [dartx.sublist](start, end) { 228 [dartx.sublist](start, end) {
229 if (end === void 0) 229 if (end === void 0)
230 end = null; 230 end = null;
231 _js_helper.checkNull(start); 231 _js_helper.checkNull(start);
232 if (!(typeof start == 'number')) 232 if (!(typeof start == 'number'))
233 throw new core.ArgumentError(start); 233 throw new core.ArgumentError(start);
234 if (dart.notNull(start) < 0 || dart.notNull(start) > dart.notNull(this.l ength)) { 234 if (dart.notNull(start) < 0 || dart.notNull(start) > dart.notNull(this[d artx.length])) {
235 throw new core.RangeError.range(start, 0, this.length); 235 throw new core.RangeError.range(start, 0, this[dartx.length]);
236 } 236 }
237 if (end == null) { 237 if (end == null) {
238 end = this.length; 238 end = this[dartx.length];
239 } else { 239 } else {
240 if (!(typeof end == 'number')) 240 if (!(typeof end == 'number'))
241 throw new core.ArgumentError(end); 241 throw new core.ArgumentError(end);
242 if (dart.notNull(end) < dart.notNull(start) || dart.notNull(end) > dar t.notNull(this.length)) { 242 if (dart.notNull(end) < dart.notNull(start) || dart.notNull(end) > dar t.notNull(this[dartx.length])) {
243 throw new core.RangeError.range(end, start, this.length); 243 throw new core.RangeError.range(end, start, this[dartx.length]);
244 } 244 }
245 } 245 }
246 if (start == end) 246 if (start == end)
247 return dart.list([], E); 247 return dart.list([], E);
248 return JSArray$(E).typed(this.slice(start, end)); 248 return JSArray$(E).typed(this.slice(start, end));
249 } 249 }
250 [dartx.getRange](start, end) { 250 [dartx.getRange](start, end) {
251 return new (_internal.IterableMixinWorkaround$(E))().getRangeList(this, start, end); 251 return new (_internal.IterableMixinWorkaround$(E))().getRangeList(this, start, end);
252 } 252 }
253 get [dartx.first]() { 253 get [dartx.first]() {
254 if (dart.notNull(this.length) > 0) 254 if (dart.notNull(this[dartx.length]) > 0)
255 return this[dartx.get](0); 255 return this[dartx.get](0);
256 throw new core.StateError("No elements"); 256 throw new core.StateError("No elements");
257 } 257 }
258 get [dartx.last]() { 258 get [dartx.last]() {
259 if (dart.notNull(this.length) > 0) 259 if (dart.notNull(this[dartx.length]) > 0)
260 return this[dartx.get](dart.notNull(this.length) - 1); 260 return this[dartx.get](dart.notNull(this[dartx.length]) - 1);
261 throw new core.StateError("No elements"); 261 throw new core.StateError("No elements");
262 } 262 }
263 get [dartx.single]() { 263 get [dartx.single]() {
264 if (this.length == 1) 264 if (this[dartx.length] == 1)
265 return this[dartx.get](0); 265 return this[dartx.get](0);
266 if (this.length == 0) 266 if (this[dartx.length] == 0)
267 throw new core.StateError("No elements"); 267 throw new core.StateError("No elements");
268 throw new core.StateError("More than one element"); 268 throw new core.StateError("More than one element");
269 } 269 }
270 [dartx.removeRange](start, end) { 270 [dartx.removeRange](start, end) {
271 this[dartx.checkGrowable]('removeRange'); 271 this[dartx.checkGrowable]('removeRange');
272 let receiverLength = this.length; 272 let receiverLength = this[dartx.length];
273 if (dart.notNull(start) < 0 || dart.notNull(start) > dart.notNull(receiv erLength)) { 273 if (dart.notNull(start) < 0 || dart.notNull(start) > dart.notNull(receiv erLength)) {
274 throw new core.RangeError.range(start, 0, receiverLength); 274 throw new core.RangeError.range(start, 0, receiverLength);
275 } 275 }
276 if (dart.notNull(end) < dart.notNull(start) || dart.notNull(end) > dart. notNull(receiverLength)) { 276 if (dart.notNull(end) < dart.notNull(start) || dart.notNull(end) > dart. notNull(receiverLength)) {
277 throw new core.RangeError.range(end, start, receiverLength); 277 throw new core.RangeError.range(end, start, receiverLength);
278 } 278 }
279 _internal.Lists.copy(this, end, this, start, dart.notNull(receiverLength ) - dart.notNull(end)); 279 _internal.Lists.copy(this, end, this, start, dart.notNull(receiverLength ) - dart.notNull(end));
280 this.length = dart.notNull(receiverLength) - (dart.notNull(end) - dart.n otNull(start)); 280 this[dartx.length] = dart.notNull(receiverLength) - (dart.notNull(end) - dart.notNull(start));
281 } 281 }
282 [dartx.setRange](start, end, iterable, skipCount) { 282 [dartx.setRange](start, end, iterable, skipCount) {
283 dart.as(iterable, core.Iterable$(E)); 283 dart.as(iterable, core.Iterable$(E));
284 if (skipCount === void 0) 284 if (skipCount === void 0)
285 skipCount = 0; 285 skipCount = 0;
286 _internal.IterableMixinWorkaround.setRangeList(this, start, end, iterabl e, skipCount); 286 _internal.IterableMixinWorkaround.setRangeList(this, start, end, iterabl e, skipCount);
287 } 287 }
288 [dartx.fillRange](start, end, fillValue) { 288 [dartx.fillRange](start, end, fillValue) {
289 if (fillValue === void 0) 289 if (fillValue === void 0)
290 fillValue = null; 290 fillValue = null;
(...skipping 30 matching lines...) Expand all
321 if (start === void 0) 321 if (start === void 0)
322 start = 0; 322 start = 0;
323 return _internal.IterableMixinWorkaround.indexOfList(this, element, star t); 323 return _internal.IterableMixinWorkaround.indexOfList(this, element, star t);
324 } 324 }
325 [dartx.lastIndexOf](element, start) { 325 [dartx.lastIndexOf](element, start) {
326 if (start === void 0) 326 if (start === void 0)
327 start = null; 327 start = null;
328 return _internal.IterableMixinWorkaround.lastIndexOfList(this, element, start); 328 return _internal.IterableMixinWorkaround.lastIndexOfList(this, element, start);
329 } 329 }
330 [dartx.contains](other) { 330 [dartx.contains](other) {
331 for (let i = 0; dart.notNull(i) < dart.notNull(this.length); i = dart.no tNull(i) + 1) { 331 for (let i = 0; dart.notNull(i) < dart.notNull(this[dartx.length]); i = dart.notNull(i) + 1) {
332 if (dart.equals(this[dartx.get](i), other)) 332 if (dart.equals(this[dartx.get](i), other))
333 return true; 333 return true;
334 } 334 }
335 return false; 335 return false;
336 } 336 }
337 get [dartx.isEmpty]() { 337 get [dartx.isEmpty]() {
338 return this.length == 0; 338 return this[dartx.length] == 0;
339 } 339 }
340 get [dartx.isNotEmpty]() { 340 get [dartx.isNotEmpty]() {
341 return !dart.notNull(this[dartx.isEmpty]); 341 return !dart.notNull(this[dartx.isEmpty]);
342 } 342 }
343 [dartx.toString]() { 343 [dartx.toString]() {
344 return collection.ListBase.listToString(this); 344 return collection.ListBase.listToString(this);
345 } 345 }
346 [dartx.toList](opts) { 346 [dartx.toList](opts) {
347 let growable = opts && 'growable' in opts ? opts.growable : true; 347 let growable = opts && 'growable' in opts ? opts.growable : true;
348 let list = this.slice(); 348 let list = this.slice();
349 if (!dart.notNull(growable)) 349 if (!dart.notNull(growable))
350 JSArray$().markFixedList(dart.as(list, core.List)); 350 JSArray$().markFixedList(dart.as(list, core.List));
351 return JSArray$(E).typed(list); 351 return JSArray$(E).typed(list);
352 } 352 }
353 [dartx.toSet]() { 353 [dartx.toSet]() {
354 return core.Set$(E).from(this); 354 return core.Set$(E).from(this);
355 } 355 }
356 get [dartx.iterator]() { 356 get [dartx.iterator]() {
357 return new (_internal.ListIterator$(E))(this); 357 return new (_internal.ListIterator$(E))(this);
358 } 358 }
359 get [dartx.hashCode]() { 359 get [dartx.hashCode]() {
360 return _js_helper.Primitives.objectHashCode(this); 360 return _js_helper.Primitives.objectHashCode(this);
361 } 361 }
362 get length() { 362 get [dartx.length]() {
363 return dart.as(this.length, core.int); 363 return dart.as(this.length, core.int);
364 } 364 }
365 set length(newLength) { 365 set [dartx.length](newLength) {
366 if (!(typeof newLength == 'number')) 366 if (!(typeof newLength == 'number'))
367 throw new core.ArgumentError(newLength); 367 throw new core.ArgumentError(newLength);
368 if (dart.notNull(newLength) < 0) 368 if (dart.notNull(newLength) < 0)
369 throw new core.RangeError.value(newLength); 369 throw new core.RangeError.value(newLength);
370 this[dartx.checkGrowable]('set length'); 370 this[dartx.checkGrowable]('set length');
371 this.length = newLength; 371 this.length = newLength;
372 } 372 }
373 [dartx.get](index) { 373 [dartx.get](index) {
374 if (!(typeof index == 'number')) 374 if (!(typeof index == 'number'))
375 throw new core.ArgumentError(index); 375 throw new core.ArgumentError(index);
376 if (dart.notNull(index) >= dart.notNull(this.length) || dart.notNull(ind ex) < 0) 376 if (dart.notNull(index) >= dart.notNull(this[dartx.length]) || dart.notN ull(index) < 0)
377 throw new core.RangeError.value(index); 377 throw new core.RangeError.value(index);
378 return dart.as(this[index], E); 378 return dart.as(this[index], E);
379 } 379 }
380 [dartx.set](index, value) { 380 [dartx.set](index, value) {
381 dart.as(value, E); 381 dart.as(value, E);
382 if (!(typeof index == 'number')) 382 if (!(typeof index == 'number'))
383 throw new core.ArgumentError(index); 383 throw new core.ArgumentError(index);
384 if (dart.notNull(index) >= dart.notNull(this.length) || dart.notNull(ind ex) < 0) 384 if (dart.notNull(index) >= dart.notNull(this[dartx.length]) || dart.notN ull(index) < 0)
385 throw new core.RangeError.value(index); 385 throw new core.RangeError.value(index);
386 this[index] = value; 386 this[index] = value;
387 } 387 }
388 [dartx.asMap]() { 388 [dartx.asMap]() {
389 return new (_internal.IterableMixinWorkaround$(E))().asMapList(this); 389 return new (_internal.IterableMixinWorkaround$(E))().asMapList(this);
390 } 390 }
391 } 391 }
392 dart.setBaseClass(JSArray, dart.global.Array); 392 dart.setBaseClass(JSArray, dart.global.Array);
393 JSArray[dart.implements] = () => [core.List$(E), JSIndexable]; 393 JSArray[dart.implements] = () => [core.List$(E), JSIndexable];
394 dart.setSignature(JSArray, { 394 dart.setSignature(JSArray, {
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after
631 if (dart.equals(this, 0) && dart.notNull(this[dartx.isNegative])) 631 if (dart.equals(this, 0) && dart.notNull(this[dartx.isNegative]))
632 return `-${result}`; 632 return `-${result}`;
633 return result; 633 return result;
634 } 634 }
635 [dartx.toRadixString](radix) { 635 [dartx.toRadixString](radix) {
636 _js_helper.checkInt(radix); 636 _js_helper.checkInt(radix);
637 if (dart.notNull(radix) < 2 || dart.notNull(radix) > 36) 637 if (dart.notNull(radix) < 2 || dart.notNull(radix) > 36)
638 throw new core.RangeError(radix); 638 throw new core.RangeError(radix);
639 let result = this.toString(radix); 639 let result = this.toString(radix);
640 let rightParenCode = 41; 640 let rightParenCode = 41;
641 if (result[dartx.codeUnitAt](dart.notNull(result.length) - 1) != rightPare nCode) { 641 if (result[dartx.codeUnitAt](dart.notNull(result[dartx.length]) - 1) != ri ghtParenCode) {
642 return result; 642 return result;
643 } 643 }
644 return JSNumber._handleIEtoString(result); 644 return JSNumber._handleIEtoString(result);
645 } 645 }
646 static _handleIEtoString(result) { 646 static _handleIEtoString(result) {
647 let match = /^([\da-z]+)(?:\.([\da-z]+))?\(e\+(\d+)\)$/.exec(result); 647 let match = /^([\da-z]+)(?:\.([\da-z]+))?\(e\+(\d+)\)$/.exec(result);
648 if (match == null) { 648 if (match == null) {
649 throw new core.UnsupportedError(`Unexpected toString result: ${result}`) ; 649 throw new core.UnsupportedError(`Unexpected toString result: ${result}`) ;
650 } 650 }
651 result = dart.dindex(match, 1); 651 result = dart.dindex(match, 1);
(...skipping 333 matching lines...) Expand 10 before | Expand all | Expand 10 after
985 ]); 985 ]);
986 class JSString extends Interceptor { 986 class JSString extends Interceptor {
987 JSString() { 987 JSString() {
988 super.Interceptor(); 988 super.Interceptor();
989 } 989 }
990 [dartx.codeUnitAt](index) { 990 [dartx.codeUnitAt](index) {
991 if (!(typeof index == 'number')) 991 if (!(typeof index == 'number'))
992 throw new core.ArgumentError(index); 992 throw new core.ArgumentError(index);
993 if (dart.notNull(index) < 0) 993 if (dart.notNull(index) < 0)
994 throw new core.RangeError.value(index); 994 throw new core.RangeError.value(index);
995 if (dart.notNull(index) >= dart.notNull(this.length)) 995 if (dart.notNull(index) >= dart.notNull(this[dartx.length]))
996 throw new core.RangeError.value(index); 996 throw new core.RangeError.value(index);
997 return dart.as(this.charCodeAt(index), core.int); 997 return dart.as(this.charCodeAt(index), core.int);
998 } 998 }
999 [dartx.allMatches](string, start) { 999 [dartx.allMatches](string, start) {
1000 if (start === void 0) 1000 if (start === void 0)
1001 start = 0; 1001 start = 0;
1002 _js_helper.checkString(string); 1002 _js_helper.checkString(string);
1003 _js_helper.checkInt(start); 1003 _js_helper.checkInt(start);
1004 if (0 > dart.notNull(start) || dart.notNull(start) > dart.notNull(string.l ength)) { 1004 if (0 > dart.notNull(start) || dart.notNull(start) > dart.notNull(string[d artx.length])) {
1005 throw new core.RangeError.range(start, 0, string.length); 1005 throw new core.RangeError.range(start, 0, string[dartx.length]);
1006 } 1006 }
1007 return _js_helper.allMatchesInStringUnchecked(this, string, start); 1007 return _js_helper.allMatchesInStringUnchecked(this, string, start);
1008 } 1008 }
1009 [dartx.matchAsPrefix](string, start) { 1009 [dartx.matchAsPrefix](string, start) {
1010 if (start === void 0) 1010 if (start === void 0)
1011 start = 0; 1011 start = 0;
1012 if (dart.notNull(start) < 0 || dart.notNull(start) > dart.notNull(string.l ength)) { 1012 if (dart.notNull(start) < 0 || dart.notNull(start) > dart.notNull(string[d artx.length])) {
1013 throw new core.RangeError.range(start, 0, string.length); 1013 throw new core.RangeError.range(start, 0, string[dartx.length]);
1014 } 1014 }
1015 if (dart.notNull(start) + dart.notNull(this.length) > dart.notNull(string. length)) 1015 if (dart.notNull(start) + dart.notNull(this[dartx.length]) > dart.notNull( string[dartx.length]))
1016 return null; 1016 return null;
1017 for (let i = 0; dart.notNull(i) < dart.notNull(this.length); i = dart.notN ull(i) + 1) { 1017 for (let i = 0; dart.notNull(i) < dart.notNull(this[dartx.length]); i = da rt.notNull(i) + 1) {
1018 if (string[dartx.codeUnitAt](dart.notNull(start) + dart.notNull(i)) != t his[dartx.codeUnitAt](i)) { 1018 if (string[dartx.codeUnitAt](dart.notNull(start) + dart.notNull(i)) != t his[dartx.codeUnitAt](i)) {
1019 return null; 1019 return null;
1020 } 1020 }
1021 } 1021 }
1022 return new _js_helper.StringMatch(start, string, this); 1022 return new _js_helper.StringMatch(start, string, this);
1023 } 1023 }
1024 [dartx['+']](other) { 1024 [dartx['+']](other) {
1025 if (!(typeof other == 'string')) 1025 if (!(typeof other == 'string'))
1026 throw new core.ArgumentError(other); 1026 throw new core.ArgumentError(other);
1027 return this + other; 1027 return this + other;
1028 } 1028 }
1029 [dartx.endsWith](other) { 1029 [dartx.endsWith](other) {
1030 _js_helper.checkString(other); 1030 _js_helper.checkString(other);
1031 let otherLength = other.length; 1031 let otherLength = other[dartx.length];
1032 if (dart.notNull(otherLength) > dart.notNull(this.length)) 1032 if (dart.notNull(otherLength) > dart.notNull(this[dartx.length]))
1033 return false; 1033 return false;
1034 return other == this[dartx.substring](dart.notNull(this.length) - dart.not Null(otherLength)); 1034 return other == this[dartx.substring](dart.notNull(this[dartx.length]) - d art.notNull(otherLength));
1035 } 1035 }
1036 [dartx.replaceAll](from, to) { 1036 [dartx.replaceAll](from, to) {
1037 _js_helper.checkString(to); 1037 _js_helper.checkString(to);
1038 return dart.as(_js_helper.stringReplaceAllUnchecked(this, from, to), core. String); 1038 return dart.as(_js_helper.stringReplaceAllUnchecked(this, from, to), core. String);
1039 } 1039 }
1040 [dartx.replaceAllMapped](from, convert) { 1040 [dartx.replaceAllMapped](from, convert) {
1041 return this[dartx.splitMapJoin](from, {onMatch: convert}); 1041 return this[dartx.splitMapJoin](from, {onMatch: convert});
1042 } 1042 }
1043 [dartx.splitMapJoin](from, opts) { 1043 [dartx.splitMapJoin](from, opts) {
1044 let onMatch = opts && 'onMatch' in opts ? opts.onMatch : null; 1044 let onMatch = opts && 'onMatch' in opts ? opts.onMatch : null;
1045 let onNonMatch = opts && 'onNonMatch' in opts ? opts.onNonMatch : null; 1045 let onNonMatch = opts && 'onNonMatch' in opts ? opts.onNonMatch : null;
1046 return dart.as(_js_helper.stringReplaceAllFuncUnchecked(this, from, onMatc h, onNonMatch), core.String); 1046 return dart.as(_js_helper.stringReplaceAllFuncUnchecked(this, from, onMatc h, onNonMatch), core.String);
1047 } 1047 }
1048 [dartx.replaceFirst](from, to, startIndex) { 1048 [dartx.replaceFirst](from, to, startIndex) {
1049 if (startIndex === void 0) 1049 if (startIndex === void 0)
1050 startIndex = 0; 1050 startIndex = 0;
1051 _js_helper.checkString(to); 1051 _js_helper.checkString(to);
1052 _js_helper.checkInt(startIndex); 1052 _js_helper.checkInt(startIndex);
1053 if (dart.notNull(startIndex) < 0 || dart.notNull(startIndex) > dart.notNul l(this.length)) { 1053 if (dart.notNull(startIndex) < 0 || dart.notNull(startIndex) > dart.notNul l(this[dartx.length])) {
1054 throw new core.RangeError.range(startIndex, 0, this.length); 1054 throw new core.RangeError.range(startIndex, 0, this[dartx.length]);
1055 } 1055 }
1056 return dart.as(_js_helper.stringReplaceFirstUnchecked(this, from, to, star tIndex), core.String); 1056 return dart.as(_js_helper.stringReplaceFirstUnchecked(this, from, to, star tIndex), core.String);
1057 } 1057 }
1058 [dartx.split](pattern) { 1058 [dartx.split](pattern) {
1059 _js_helper.checkNull(pattern); 1059 _js_helper.checkNull(pattern);
1060 if (typeof pattern == 'string') { 1060 if (typeof pattern == 'string') {
1061 return dart.as(this.split(pattern), core.List$(core.String)); 1061 return dart.as(this.split(pattern), core.List$(core.String));
1062 } else if (dart.is(pattern, _js_helper.JSSyntaxRegExp) && _js_helper.regEx pCaptureCount(pattern) == 0) { 1062 } else if (dart.is(pattern, _js_helper.JSSyntaxRegExp) && _js_helper.regEx pCaptureCount(pattern) == 0) {
1063 let re = _js_helper.regExpGetNative(pattern); 1063 let re = _js_helper.regExpGetNative(pattern);
1064 return dart.as(this.split(re), core.List$(core.String)); 1064 return dart.as(this.split(re), core.List$(core.String));
1065 } else { 1065 } else {
1066 return this[_defaultSplit](pattern); 1066 return this[_defaultSplit](pattern);
1067 } 1067 }
1068 } 1068 }
1069 [_defaultSplit](pattern) { 1069 [_defaultSplit](pattern) {
1070 let result = dart.list([], core.String); 1070 let result = dart.list([], core.String);
1071 let start = 0; 1071 let start = 0;
1072 let length = 1; 1072 let length = 1;
1073 for (let match of pattern[dartx.allMatches](this)) { 1073 for (let match of pattern[dartx.allMatches](this)) {
1074 let matchStart = match.start; 1074 let matchStart = match.start;
1075 let matchEnd = match.end; 1075 let matchEnd = match.end;
1076 length = dart.notNull(matchEnd) - dart.notNull(matchStart); 1076 length = dart.notNull(matchEnd) - dart.notNull(matchStart);
1077 if (length == 0 && start == matchStart) { 1077 if (length == 0 && start == matchStart) {
1078 continue; 1078 continue;
1079 } 1079 }
1080 let end = matchStart; 1080 let end = matchStart;
1081 result[dartx.add](this[dartx.substring](start, end)); 1081 result[dartx.add](this[dartx.substring](start, end));
1082 start = matchEnd; 1082 start = matchEnd;
1083 } 1083 }
1084 if (dart.notNull(start) < dart.notNull(this.length) || dart.notNull(length ) > 0) { 1084 if (dart.notNull(start) < dart.notNull(this[dartx.length]) || dart.notNull (length) > 0) {
1085 result[dartx.add](this[dartx.substring](start)); 1085 result[dartx.add](this[dartx.substring](start));
1086 } 1086 }
1087 return result; 1087 return result;
1088 } 1088 }
1089 [dartx.startsWith](pattern, index) { 1089 [dartx.startsWith](pattern, index) {
1090 if (index === void 0) 1090 if (index === void 0)
1091 index = 0; 1091 index = 0;
1092 _js_helper.checkInt(index); 1092 _js_helper.checkInt(index);
1093 if (dart.notNull(index) < 0 || dart.notNull(index) > dart.notNull(this.len gth)) { 1093 if (dart.notNull(index) < 0 || dart.notNull(index) > dart.notNull(this[dar tx.length])) {
1094 throw new core.RangeError.range(index, 0, this.length); 1094 throw new core.RangeError.range(index, 0, this[dartx.length]);
1095 } 1095 }
1096 if (typeof pattern == 'string') { 1096 if (typeof pattern == 'string') {
1097 let other = pattern; 1097 let other = pattern;
1098 let otherLength = other.length; 1098 let otherLength = other[dartx.length];
1099 let endIndex = dart.notNull(index) + dart.notNull(otherLength); 1099 let endIndex = dart.notNull(index) + dart.notNull(otherLength);
1100 if (dart.notNull(endIndex) > dart.notNull(this.length)) 1100 if (dart.notNull(endIndex) > dart.notNull(this[dartx.length]))
1101 return false; 1101 return false;
1102 return other == this.substring(index, endIndex); 1102 return other == this.substring(index, endIndex);
1103 } 1103 }
1104 return pattern[dartx.matchAsPrefix](this, index) != null; 1104 return pattern[dartx.matchAsPrefix](this, index) != null;
1105 } 1105 }
1106 [dartx.substring](startIndex, endIndex) { 1106 [dartx.substring](startIndex, endIndex) {
1107 if (endIndex === void 0) 1107 if (endIndex === void 0)
1108 endIndex = null; 1108 endIndex = null;
1109 _js_helper.checkInt(startIndex); 1109 _js_helper.checkInt(startIndex);
1110 if (endIndex == null) 1110 if (endIndex == null)
1111 endIndex = this.length; 1111 endIndex = this[dartx.length];
1112 _js_helper.checkInt(endIndex); 1112 _js_helper.checkInt(endIndex);
1113 if (dart.notNull(startIndex) < 0) 1113 if (dart.notNull(startIndex) < 0)
1114 throw new core.RangeError.value(startIndex); 1114 throw new core.RangeError.value(startIndex);
1115 if (dart.notNull(startIndex) > dart.notNull(endIndex)) 1115 if (dart.notNull(startIndex) > dart.notNull(endIndex))
1116 throw new core.RangeError.value(startIndex); 1116 throw new core.RangeError.value(startIndex);
1117 if (dart.notNull(endIndex) > dart.notNull(this.length)) 1117 if (dart.notNull(endIndex) > dart.notNull(this[dartx.length]))
1118 throw new core.RangeError.value(endIndex); 1118 throw new core.RangeError.value(endIndex);
1119 return this.substring(startIndex, endIndex); 1119 return this.substring(startIndex, endIndex);
1120 } 1120 }
1121 [dartx.toLowerCase]() { 1121 [dartx.toLowerCase]() {
1122 return this.toLowerCase(); 1122 return this.toLowerCase();
1123 } 1123 }
1124 [dartx.toUpperCase]() { 1124 [dartx.toUpperCase]() {
1125 return this.toUpperCase(); 1125 return this.toUpperCase();
1126 } 1126 }
1127 static _isWhitespace(codeUnit) { 1127 static _isWhitespace(codeUnit) {
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
1169 } 1169 }
1170 default: 1170 default:
1171 { 1171 {
1172 return false; 1172 return false;
1173 } 1173 }
1174 } 1174 }
1175 } 1175 }
1176 static _skipLeadingWhitespace(string, index) { 1176 static _skipLeadingWhitespace(string, index) {
1177 let SPACE = 32; 1177 let SPACE = 32;
1178 let CARRIAGE_RETURN = 13; 1178 let CARRIAGE_RETURN = 13;
1179 while (dart.notNull(index) < dart.notNull(string.length)) { 1179 while (dart.notNull(index) < dart.notNull(string[dartx.length])) {
1180 let codeUnit = string[dartx.codeUnitAt](index); 1180 let codeUnit = string[dartx.codeUnitAt](index);
1181 if (codeUnit != SPACE && codeUnit != CARRIAGE_RETURN && !dart.notNull(JS String._isWhitespace(codeUnit))) { 1181 if (codeUnit != SPACE && codeUnit != CARRIAGE_RETURN && !dart.notNull(JS String._isWhitespace(codeUnit))) {
1182 break; 1182 break;
1183 } 1183 }
1184 index = dart.notNull(index) + 1; 1184 index = dart.notNull(index) + 1;
1185 } 1185 }
1186 return index; 1186 return index;
1187 } 1187 }
1188 static _skipTrailingWhitespace(string, index) { 1188 static _skipTrailingWhitespace(string, index) {
1189 let SPACE = 32; 1189 let SPACE = 32;
1190 let CARRIAGE_RETURN = 13; 1190 let CARRIAGE_RETURN = 13;
1191 while (dart.notNull(index) > 0) { 1191 while (dart.notNull(index) > 0) {
1192 let codeUnit = string[dartx.codeUnitAt](dart.notNull(index) - 1); 1192 let codeUnit = string[dartx.codeUnitAt](dart.notNull(index) - 1);
1193 if (codeUnit != SPACE && codeUnit != CARRIAGE_RETURN && !dart.notNull(JS String._isWhitespace(codeUnit))) { 1193 if (codeUnit != SPACE && codeUnit != CARRIAGE_RETURN && !dart.notNull(JS String._isWhitespace(codeUnit))) {
1194 break; 1194 break;
1195 } 1195 }
1196 index = dart.notNull(index) - 1; 1196 index = dart.notNull(index) - 1;
1197 } 1197 }
1198 return index; 1198 return index;
1199 } 1199 }
1200 [dartx.trim]() { 1200 [dartx.trim]() {
1201 let NEL = 133; 1201 let NEL = 133;
1202 let result = this.trim(); 1202 let result = this.trim();
1203 if (result.length == 0) 1203 if (result[dartx.length] == 0)
1204 return result; 1204 return result;
1205 let firstCode = result[dartx.codeUnitAt](0); 1205 let firstCode = result[dartx.codeUnitAt](0);
1206 let startIndex = 0; 1206 let startIndex = 0;
1207 if (firstCode == NEL) { 1207 if (firstCode == NEL) {
1208 startIndex = JSString._skipLeadingWhitespace(result, 1); 1208 startIndex = JSString._skipLeadingWhitespace(result, 1);
1209 if (startIndex == result.length) 1209 if (startIndex == result[dartx.length])
1210 return ""; 1210 return "";
1211 } 1211 }
1212 let endIndex = result.length; 1212 let endIndex = result[dartx.length];
1213 let lastCode = result[dartx.codeUnitAt](dart.notNull(endIndex) - 1); 1213 let lastCode = result[dartx.codeUnitAt](dart.notNull(endIndex) - 1);
1214 if (lastCode == NEL) { 1214 if (lastCode == NEL) {
1215 endIndex = JSString._skipTrailingWhitespace(result, dart.notNull(endInde x) - 1); 1215 endIndex = JSString._skipTrailingWhitespace(result, dart.notNull(endInde x) - 1);
1216 } 1216 }
1217 if (startIndex == 0 && endIndex == result.length) 1217 if (startIndex == 0 && endIndex == result[dartx.length])
1218 return result; 1218 return result;
1219 return result.substring(startIndex, endIndex); 1219 return result.substring(startIndex, endIndex);
1220 } 1220 }
1221 [dartx.trimLeft]() { 1221 [dartx.trimLeft]() {
1222 let NEL = 133; 1222 let NEL = 133;
1223 let result = null; 1223 let result = null;
1224 let startIndex = 0; 1224 let startIndex = 0;
1225 if (typeof this.trimLeft != "undefined") { 1225 if (typeof this.trimLeft != "undefined") {
1226 result = this.trimLeft(); 1226 result = this.trimLeft();
1227 if (result.length == 0) 1227 if (result[dartx.length] == 0)
1228 return result; 1228 return result;
1229 let firstCode = result[dartx.codeUnitAt](0); 1229 let firstCode = result[dartx.codeUnitAt](0);
1230 if (firstCode == NEL) { 1230 if (firstCode == NEL) {
1231 startIndex = JSString._skipLeadingWhitespace(result, 1); 1231 startIndex = JSString._skipLeadingWhitespace(result, 1);
1232 } 1232 }
1233 } else { 1233 } else {
1234 result = this; 1234 result = this;
1235 startIndex = JSString._skipLeadingWhitespace(this, 0); 1235 startIndex = JSString._skipLeadingWhitespace(this, 0);
1236 } 1236 }
1237 if (startIndex == 0) 1237 if (startIndex == 0)
1238 return result; 1238 return result;
1239 if (startIndex == result.length) 1239 if (startIndex == result[dartx.length])
1240 return ""; 1240 return "";
1241 return result.substring(startIndex); 1241 return result.substring(startIndex);
1242 } 1242 }
1243 [dartx.trimRight]() { 1243 [dartx.trimRight]() {
1244 let NEL = 133; 1244 let NEL = 133;
1245 let result = null; 1245 let result = null;
1246 let endIndex = null; 1246 let endIndex = null;
1247 if (typeof this.trimRight != "undefined") { 1247 if (typeof this.trimRight != "undefined") {
1248 result = this.trimRight(); 1248 result = this.trimRight();
1249 endIndex = result.length; 1249 endIndex = result[dartx.length];
1250 if (endIndex == 0) 1250 if (endIndex == 0)
1251 return result; 1251 return result;
1252 let lastCode = result[dartx.codeUnitAt](dart.notNull(endIndex) - 1); 1252 let lastCode = result[dartx.codeUnitAt](dart.notNull(endIndex) - 1);
1253 if (lastCode == NEL) { 1253 if (lastCode == NEL) {
1254 endIndex = JSString._skipTrailingWhitespace(result, dart.notNull(endIn dex) - 1); 1254 endIndex = JSString._skipTrailingWhitespace(result, dart.notNull(endIn dex) - 1);
1255 } 1255 }
1256 } else { 1256 } else {
1257 result = this; 1257 result = this;
1258 endIndex = JSString._skipTrailingWhitespace(this, this.length); 1258 endIndex = JSString._skipTrailingWhitespace(this, this[dartx.length]);
1259 } 1259 }
1260 if (endIndex == result.length) 1260 if (endIndex == result[dartx.length])
1261 return result; 1261 return result;
1262 if (endIndex == 0) 1262 if (endIndex == 0)
1263 return ""; 1263 return "";
1264 return result.substring(0, endIndex); 1264 return result.substring(0, endIndex);
1265 } 1265 }
1266 [dartx['*']](times) { 1266 [dartx['*']](times) {
1267 if (0 >= dart.notNull(times)) 1267 if (0 >= dart.notNull(times))
1268 return ''; 1268 return '';
1269 if (times == 1 || this.length == 0) 1269 if (times == 1 || this[dartx.length] == 0)
1270 return this; 1270 return this;
1271 if (!dart.equals(times, times >>> 0)) { 1271 if (!dart.equals(times, times >>> 0)) {
1272 throw dart.const(new core.OutOfMemoryError()); 1272 throw dart.const(new core.OutOfMemoryError());
1273 } 1273 }
1274 let result = ''; 1274 let result = '';
1275 let s = this; 1275 let s = this;
1276 while (true) { 1276 while (true) {
1277 if ((dart.notNull(times) & 1) == 1) 1277 if ((dart.notNull(times) & 1) == 1)
1278 result = s[dartx['+']](result); 1278 result = s[dartx['+']](result);
1279 times = dart.as(times >>> 1, core.int); 1279 times = dart.as(times >>> 1, core.int);
1280 if (times == 0) 1280 if (times == 0)
1281 break; 1281 break;
1282 s = s[dartx['+']](s); 1282 s = s[dartx['+']](s);
1283 } 1283 }
1284 return result; 1284 return result;
1285 } 1285 }
1286 [dartx.padLeft](width, padding) { 1286 [dartx.padLeft](width, padding) {
1287 if (padding === void 0) 1287 if (padding === void 0)
1288 padding = ' '; 1288 padding = ' ';
1289 let delta = dart.notNull(width) - dart.notNull(this.length); 1289 let delta = dart.notNull(width) - dart.notNull(this[dartx.length]);
1290 if (dart.notNull(delta) <= 0) 1290 if (dart.notNull(delta) <= 0)
1291 return this; 1291 return this;
1292 return padding[dartx['*']](delta) + this; 1292 return padding[dartx['*']](delta) + this;
1293 } 1293 }
1294 [dartx.padRight](width, padding) { 1294 [dartx.padRight](width, padding) {
1295 if (padding === void 0) 1295 if (padding === void 0)
1296 padding = ' '; 1296 padding = ' ';
1297 let delta = dart.notNull(width) - dart.notNull(this.length); 1297 let delta = dart.notNull(width) - dart.notNull(this[dartx.length]);
1298 if (dart.notNull(delta) <= 0) 1298 if (dart.notNull(delta) <= 0)
1299 return this; 1299 return this;
1300 return this[dartx['+']](padding[dartx['*']](delta)); 1300 return this[dartx['+']](padding[dartx['*']](delta));
1301 } 1301 }
1302 get [dartx.codeUnits]() { 1302 get [dartx.codeUnits]() {
1303 return new _CodeUnits(this); 1303 return new _CodeUnits(this);
1304 } 1304 }
1305 get [dartx.runes]() { 1305 get [dartx.runes]() {
1306 return new core.Runes(this); 1306 return new core.Runes(this);
1307 } 1307 }
1308 [dartx.indexOf](pattern, start) { 1308 [dartx.indexOf](pattern, start) {
1309 if (start === void 0) 1309 if (start === void 0)
1310 start = 0; 1310 start = 0;
1311 _js_helper.checkNull(pattern); 1311 _js_helper.checkNull(pattern);
1312 if (!(typeof start == 'number')) 1312 if (!(typeof start == 'number'))
1313 throw new core.ArgumentError(start); 1313 throw new core.ArgumentError(start);
1314 if (dart.notNull(start) < 0 || dart.notNull(start) > dart.notNull(this.len gth)) { 1314 if (dart.notNull(start) < 0 || dart.notNull(start) > dart.notNull(this[dar tx.length])) {
1315 throw new core.RangeError.range(start, 0, this.length); 1315 throw new core.RangeError.range(start, 0, this[dartx.length]);
1316 } 1316 }
1317 if (typeof pattern == 'string') { 1317 if (typeof pattern == 'string') {
1318 return this.indexOf(pattern, start); 1318 return this.indexOf(pattern, start);
1319 } 1319 }
1320 if (dart.is(pattern, _js_helper.JSSyntaxRegExp)) { 1320 if (dart.is(pattern, _js_helper.JSSyntaxRegExp)) {
1321 let re = pattern; 1321 let re = pattern;
1322 let match = _js_helper.firstMatchAfter(re, this, start); 1322 let match = _js_helper.firstMatchAfter(re, this, start);
1323 return match == null ? -1 : match.start; 1323 return match == null ? -1 : match.start;
1324 } 1324 }
1325 for (let i = start; dart.notNull(i) <= dart.notNull(this.length); i = dart .notNull(i) + 1) { 1325 for (let i = start; dart.notNull(i) <= dart.notNull(this[dartx.length]); i = dart.notNull(i) + 1) {
1326 if (pattern[dartx.matchAsPrefix](this, i) != null) 1326 if (pattern[dartx.matchAsPrefix](this, i) != null)
1327 return i; 1327 return i;
1328 } 1328 }
1329 return -1; 1329 return -1;
1330 } 1330 }
1331 [dartx.lastIndexOf](pattern, start) { 1331 [dartx.lastIndexOf](pattern, start) {
1332 if (start === void 0) 1332 if (start === void 0)
1333 start = null; 1333 start = null;
1334 _js_helper.checkNull(pattern); 1334 _js_helper.checkNull(pattern);
1335 if (start == null) { 1335 if (start == null) {
1336 start = this.length; 1336 start = this[dartx.length];
1337 } else if (!(typeof start == 'number')) { 1337 } else if (!(typeof start == 'number')) {
1338 throw new core.ArgumentError(start); 1338 throw new core.ArgumentError(start);
1339 } else if (dart.notNull(start) < 0 || dart.notNull(start) > dart.notNull(t his.length)) { 1339 } else if (dart.notNull(start) < 0 || dart.notNull(start) > dart.notNull(t his[dartx.length])) {
1340 throw new core.RangeError.range(start, 0, this.length); 1340 throw new core.RangeError.range(start, 0, this[dartx.length]);
1341 } 1341 }
1342 if (typeof pattern == 'string') { 1342 if (typeof pattern == 'string') {
1343 let other = pattern; 1343 let other = pattern;
1344 if (dart.notNull(start) + dart.notNull(other.length) > dart.notNull(this .length)) { 1344 if (dart.notNull(start) + dart.notNull(other[dartx.length]) > dart.notNu ll(this[dartx.length])) {
1345 start = dart.notNull(this.length) - dart.notNull(other.length); 1345 start = dart.notNull(this[dartx.length]) - dart.notNull(other[dartx.le ngth]);
1346 } 1346 }
1347 return dart.as(_js_helper.stringLastIndexOfUnchecked(this, other, start) , core.int); 1347 return dart.as(_js_helper.stringLastIndexOfUnchecked(this, other, start) , core.int);
1348 } 1348 }
1349 for (let i = start; dart.notNull(i) >= 0; i = dart.notNull(i) - 1) { 1349 for (let i = start; dart.notNull(i) >= 0; i = dart.notNull(i) - 1) {
1350 if (pattern[dartx.matchAsPrefix](this, i) != null) 1350 if (pattern[dartx.matchAsPrefix](this, i) != null)
1351 return i; 1351 return i;
1352 } 1352 }
1353 return -1; 1353 return -1;
1354 } 1354 }
1355 [dartx.contains](other, startIndex) { 1355 [dartx.contains](other, startIndex) {
1356 if (startIndex === void 0) 1356 if (startIndex === void 0)
1357 startIndex = 0; 1357 startIndex = 0;
1358 _js_helper.checkNull(other); 1358 _js_helper.checkNull(other);
1359 if (dart.notNull(startIndex) < 0 || dart.notNull(startIndex) > dart.notNul l(this.length)) { 1359 if (dart.notNull(startIndex) < 0 || dart.notNull(startIndex) > dart.notNul l(this[dartx.length])) {
1360 throw new core.RangeError.range(startIndex, 0, this.length); 1360 throw new core.RangeError.range(startIndex, 0, this[dartx.length]);
1361 } 1361 }
1362 return dart.as(_js_helper.stringContainsUnchecked(this, other, startIndex) , core.bool); 1362 return dart.as(_js_helper.stringContainsUnchecked(this, other, startIndex) , core.bool);
1363 } 1363 }
1364 get [dartx.isEmpty]() { 1364 get [dartx.isEmpty]() {
1365 return this.length == 0; 1365 return this[dartx.length] == 0;
1366 } 1366 }
1367 get [dartx.isNotEmpty]() { 1367 get [dartx.isNotEmpty]() {
1368 return !dart.notNull(this[dartx.isEmpty]); 1368 return !dart.notNull(this[dartx.isEmpty]);
1369 } 1369 }
1370 [dartx.compareTo](other) { 1370 [dartx.compareTo](other) {
1371 if (!(typeof other == 'string')) 1371 if (!(typeof other == 'string'))
1372 throw new core.ArgumentError(other); 1372 throw new core.ArgumentError(other);
1373 return dart.equals(this, other) ? 0 : this < other ? -1 : 1; 1373 return dart.equals(this, other) ? 0 : this < other ? -1 : 1;
1374 } 1374 }
1375 [dartx.toString]() { 1375 [dartx.toString]() {
1376 return this; 1376 return this;
1377 } 1377 }
1378 get [dartx.hashCode]() { 1378 get [dartx.hashCode]() {
1379 let hash = 0; 1379 let hash = 0;
1380 for (let i = 0; dart.notNull(i) < dart.notNull(this.length); i = dart.notN ull(i) + 1) { 1380 for (let i = 0; dart.notNull(i) < dart.notNull(this[dartx.length]); i = da rt.notNull(i) + 1) {
1381 hash = 536870911 & dart.notNull(hash) + this.charCodeAt(i); 1381 hash = 536870911 & dart.notNull(hash) + this.charCodeAt(i);
1382 hash = 536870911 & dart.notNull(hash) + ((524287 & dart.notNull(hash)) < < 10); 1382 hash = 536870911 & dart.notNull(hash) + ((524287 & dart.notNull(hash)) < < 10);
1383 hash = hash ^ hash >> 6; 1383 hash = hash ^ hash >> 6;
1384 } 1384 }
1385 hash = 536870911 & dart.notNull(hash) + ((67108863 & dart.notNull(hash)) < < 3); 1385 hash = 536870911 & dart.notNull(hash) + ((67108863 & dart.notNull(hash)) < < 3);
1386 hash = hash ^ hash >> 11; 1386 hash = hash ^ hash >> 11;
1387 return 536870911 & dart.notNull(hash) + ((16383 & dart.notNull(hash)) << 1 5); 1387 return 536870911 & dart.notNull(hash) + ((16383 & dart.notNull(hash)) << 1 5);
1388 } 1388 }
1389 get [dartx.runtimeType]() { 1389 get [dartx.runtimeType]() {
1390 return core.String; 1390 return core.String;
1391 } 1391 }
1392 get length() { 1392 get [dartx.length]() {
1393 return this.length; 1393 return this.length;
1394 } 1394 }
1395 [dartx.get](index) { 1395 [dartx.get](index) {
1396 if (!(typeof index == 'number')) 1396 if (!(typeof index == 'number'))
1397 throw new core.ArgumentError(index); 1397 throw new core.ArgumentError(index);
1398 if (dart.notNull(index) >= dart.notNull(this.length) || dart.notNull(index ) < 0) 1398 if (dart.notNull(index) >= dart.notNull(this[dartx.length]) || dart.notNul l(index) < 0)
1399 throw new core.RangeError.value(index); 1399 throw new core.RangeError.value(index);
1400 return this[index]; 1400 return this[index];
1401 } 1401 }
1402 } 1402 }
1403 JSString[dart.implements] = () => [core.String, JSIndexable]; 1403 JSString[dart.implements] = () => [core.String, JSIndexable];
1404 dart.setSignature(JSString, { 1404 dart.setSignature(JSString, {
1405 constructors: () => ({JSString: [JSString, []]}), 1405 constructors: () => ({JSString: [JSString, []]}),
1406 methods: () => ({ 1406 methods: () => ({
1407 [dartx.codeUnitAt]: [core.int, [core.int]], 1407 [dartx.codeUnitAt]: [core.int, [core.int]],
1408 [dartx.allMatches]: [core.Iterable$(core.Match), [core.String], [core.int] ], 1408 [dartx.allMatches]: [core.Iterable$(core.Match), [core.String], [core.int] ],
(...skipping 30 matching lines...) Expand all
1439 names: ['_isWhitespace', '_skipLeadingWhitespace', '_skipTrailingWhitespace' ] 1439 names: ['_isWhitespace', '_skipLeadingWhitespace', '_skipTrailingWhitespace' ]
1440 }); 1440 });
1441 JSString[dart.metadata] = () => [dart.const(new _js_helper.JsPeerInterface({na me: 'String'}))]; 1441 JSString[dart.metadata] = () => [dart.const(new _js_helper.JsPeerInterface({na me: 'String'}))];
1442 dart.registerExtension(dart.global.String, JSString); 1442 dart.registerExtension(dart.global.String, JSString);
1443 let _string = Symbol('_string'); 1443 let _string = Symbol('_string');
1444 class _CodeUnits extends _internal.UnmodifiableListBase$(core.int) { 1444 class _CodeUnits extends _internal.UnmodifiableListBase$(core.int) {
1445 _CodeUnits(string) { 1445 _CodeUnits(string) {
1446 this[_string] = string; 1446 this[_string] = string;
1447 } 1447 }
1448 get length() { 1448 get length() {
1449 return this[_string].length; 1449 return this[_string][dartx.length];
1450 } 1450 }
1451 get(i) { 1451 get(i) {
1452 return this[_string][dartx.codeUnitAt](i); 1452 return this[_string][dartx.codeUnitAt](i);
1453 } 1453 }
1454 } 1454 }
1455 dart.setSignature(_CodeUnits, { 1455 dart.setSignature(_CodeUnits, {
1456 constructors: () => ({_CodeUnits: [_CodeUnits, [core.String]]}), 1456 constructors: () => ({_CodeUnits: [_CodeUnits, [core.String]]}),
1457 methods: () => ({get: [core.int, [core.int]]}) 1457 methods: () => ({get: [core.int, [core.int]]})
1458 }); 1458 });
1459 dart.defineExtensionMembers(_CodeUnits, ['get', 'length']); 1459 dart.defineExtensionMembers(_CodeUnits, ['get', 'length']);
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
1542 exports.JSString = JSString; 1542 exports.JSString = JSString;
1543 exports.getInterceptor = getInterceptor; 1543 exports.getInterceptor = getInterceptor;
1544 exports.JSBool = JSBool; 1544 exports.JSBool = JSBool;
1545 exports.JSIndexable = JSIndexable; 1545 exports.JSIndexable = JSIndexable;
1546 exports.JSMutableIndexable = JSMutableIndexable; 1546 exports.JSMutableIndexable = JSMutableIndexable;
1547 exports.JSObject = JSObject; 1547 exports.JSObject = JSObject;
1548 exports.JavaScriptObject = JavaScriptObject; 1548 exports.JavaScriptObject = JavaScriptObject;
1549 exports.PlainJavaScriptObject = PlainJavaScriptObject; 1549 exports.PlainJavaScriptObject = PlainJavaScriptObject;
1550 exports.UnknownJavaScriptObject = UnknownJavaScriptObject; 1550 exports.UnknownJavaScriptObject = UnknownJavaScriptObject;
1551 }); 1551 });
OLDNEW
« no previous file with comments | « no previous file | lib/runtime/dart/_internal.js » ('j') | lib/src/codegen/js_codegen.dart » ('J')

Powered by Google App Engine
This is Rietveld 408576698