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

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

Issue 1117793002: add checks needed for covariant generics, and List<E> (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « lib/runtime/dart/convert.js ('k') | lib/runtime/dart/math.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 var core; 1 var core;
2 (function(exports) { 2 (function(exports) {
3 'use strict'; 3 'use strict';
4 class Object { 4 class Object {
5 constructor() { 5 constructor() {
6 let name = this.constructor.name; 6 let name = this.constructor.name;
7 let init = this[name]; 7 let init = this[name];
8 let result = void 0; 8 let result = void 0;
9 if (init) 9 if (init)
10 result = init.apply(this, arguments); 10 result = init.apply(this, arguments);
(...skipping 1005 matching lines...) Expand 10 before | Expand all | Expand 10 after
1016 this.name = name; 1016 this.name = name;
1017 } 1017 }
1018 toString() { 1018 toString() {
1019 return `Expando:${this.name}`; 1019 return `Expando:${this.name}`;
1020 } 1020 }
1021 get(object) { 1021 get(object) {
1022 let values = _js_helper.Primitives.getProperty(object, Expando._EXPANDO_ PROPERTY_NAME); 1022 let values = _js_helper.Primitives.getProperty(object, Expando._EXPANDO_ PROPERTY_NAME);
1023 return dart.as(values == null ? null : _js_helper.Primitives.getProperty (values, this[_getKey]()), T); 1023 return dart.as(values == null ? null : _js_helper.Primitives.getProperty (values, this[_getKey]()), T);
1024 } 1024 }
1025 set(object, value) { 1025 set(object, value) {
1026 dart.as(value, T);
1026 let values = _js_helper.Primitives.getProperty(object, Expando._EXPANDO_ PROPERTY_NAME); 1027 let values = _js_helper.Primitives.getProperty(object, Expando._EXPANDO_ PROPERTY_NAME);
1027 if (values == null) { 1028 if (values == null) {
1028 values = new Object(); 1029 values = new Object();
1029 _js_helper.Primitives.setProperty(object, Expando._EXPANDO_PROPERTY_NA ME, values); 1030 _js_helper.Primitives.setProperty(object, Expando._EXPANDO_PROPERTY_NA ME, values);
1030 } 1031 }
1031 _js_helper.Primitives.setProperty(values, this[_getKey](), value); 1032 _js_helper.Primitives.setProperty(values, this[_getKey](), value);
1032 } 1033 }
1033 [_getKey]() { 1034 [_getKey]() {
1034 let key = dart.as(_js_helper.Primitives.getProperty(this, Expando._KEY_P ROPERTY_NAME), String); 1035 let key = dart.as(_js_helper.Primitives.getProperty(this, Expando._KEY_P ROPERTY_NAME), String);
1035 if (key == null) { 1036 if (key == null) {
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after
1252 let $setRange = dart.JsSymbol('$setRange'); 1253 let $setRange = dart.JsSymbol('$setRange');
1253 let $removeRange = dart.JsSymbol('$removeRange'); 1254 let $removeRange = dart.JsSymbol('$removeRange');
1254 let $fillRange = dart.JsSymbol('$fillRange'); 1255 let $fillRange = dart.JsSymbol('$fillRange');
1255 let $replaceRange = dart.JsSymbol('$replaceRange'); 1256 let $replaceRange = dart.JsSymbol('$replaceRange');
1256 let $asMap = dart.JsSymbol('$asMap'); 1257 let $asMap = dart.JsSymbol('$asMap');
1257 let List$ = dart.generic(function(E) { 1258 let List$ = dart.generic(function(E) {
1258 class List extends Object { 1259 class List extends Object {
1259 List(length) { 1260 List(length) {
1260 if (length === void 0) 1261 if (length === void 0)
1261 length = null; 1262 length = null;
1263 let list = null;
1262 if (length == null) { 1264 if (length == null) {
1263 return dart.as([], List$(E)); 1265 list = [];
1266 } else {
1267 if (!(typeof length == 'number') || dart.notNull(length) < 0) {
1268 throw new ArgumentError(`Length must be a non-negative integer: ${le ngth}`);
1269 }
1270 list = new Array(length);
1271 list.fixed$length = Array;
1264 } 1272 }
1265 if (!(typeof length == 'number') || dart.notNull(length) < 0) { 1273 dart.setType(list, List$(E));
1266 throw new ArgumentError(`Length must be a non-negative integer: ${leng th}`);
1267 }
1268 let list = new Array(length);
1269 list.fixed$length = Array;
1270 return dart.as(list, List$(E)); 1274 return dart.as(list, List$(E));
1271 } 1275 }
1272 filled(length, fill) { 1276 filled(length, fill) {
1273 let result = new _interceptors.JSArray$(E).fixed(length); 1277 let result = new (List$(E))(length);
1274 if (length != 0 && dart.notNull(fill != null)) { 1278 if (length != 0 && dart.notNull(fill != null)) {
1275 for (let i = 0; dart.notNull(i) < dart.notNull(result[$length]); i = d art.notNull(i) + 1) { 1279 for (let i = 0; dart.notNull(i) < dart.notNull(result[$length]); i = d art.notNull(i) + 1) {
1276 result[$set](i, fill); 1280 result[$set](i, fill);
1277 } 1281 }
1278 } 1282 }
1279 return dart.as(result, List$(E)); 1283 return dart.as(result, List$(E));
1280 } 1284 }
1281 from(elements, opts) { 1285 from(elements, opts) {
1282 let growable = opts && 'growable' in opts ? opts.growable : true; 1286 let growable = opts && 'growable' in opts ? opts.growable : true;
1283 let list = new (List$(E))(); 1287 let list = new (List$(E))();
(...skipping 14 matching lines...) Expand all
1298 result = new (List$(E))(length); 1302 result = new (List$(E))(length);
1299 } 1303 }
1300 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) { 1304 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) {
1301 result[$set](i, generator(i)); 1305 result[$set](i, generator(i));
1302 } 1306 }
1303 return result; 1307 return result;
1304 } 1308 }
1305 [$checkMutable](reason) {} 1309 [$checkMutable](reason) {}
1306 [$checkGrowable](reason) {} 1310 [$checkGrowable](reason) {}
1307 [$where](f) { 1311 [$where](f) {
1312 dart.as(f, dart.functionType(bool, [E]));
1308 return new (_internal.IterableMixinWorkaround$(E))().where(this, f); 1313 return new (_internal.IterableMixinWorkaround$(E))().where(this, f);
1309 } 1314 }
1310 [$expand](f) { 1315 [$expand](f) {
1316 dart.as(f, dart.functionType(Iterable, [E]));
1311 return _internal.IterableMixinWorkaround.expand(this, f); 1317 return _internal.IterableMixinWorkaround.expand(this, f);
1312 } 1318 }
1313 [$forEach](f) { 1319 [$forEach](f) {
1320 dart.as(f, dart.functionType(dart.void, [E]));
1314 let length = this[$length]; 1321 let length = this[$length];
1315 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) { 1322 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) {
1316 f(dart.as(this[i], E)); 1323 f(dart.as(this[i], E));
1317 if (length != this[$length]) { 1324 if (length != this[$length]) {
1318 throw new ConcurrentModificationError(this); 1325 throw new ConcurrentModificationError(this);
1319 } 1326 }
1320 } 1327 }
1321 } 1328 }
1322 [$map](f) { 1329 [$map](f) {
1330 dart.as(f, dart.functionType(dart.dynamic, [E]));
1323 return _internal.IterableMixinWorkaround.mapList(this, f); 1331 return _internal.IterableMixinWorkaround.mapList(this, f);
1324 } 1332 }
1325 [$join](separator) { 1333 [$join](separator) {
1326 if (separator === void 0) 1334 if (separator === void 0)
1327 separator = ""; 1335 separator = "";
1328 let list = new List(this[$length]); 1336 let list = new List(this[$length]);
1329 for (let i = 0; dart.notNull(i) < dart.notNull(this[$length]); i = dart. notNull(i) + 1) { 1337 for (let i = 0; dart.notNull(i) < dart.notNull(this[$length]); i = dart. notNull(i) + 1) {
1330 list[$set](i, `${this[$get](i)}`); 1338 list[$set](i, `${this[$get](i)}`);
1331 } 1339 }
1332 return list.join(separator); 1340 return list.join(separator);
1333 } 1341 }
1334 [$take](n) { 1342 [$take](n) {
1335 return new (_internal.IterableMixinWorkaround$(E))().takeList(this, n); 1343 return new (_internal.IterableMixinWorkaround$(E))().takeList(this, n);
1336 } 1344 }
1337 [$takeWhile](test) { 1345 [$takeWhile](test) {
1346 dart.as(test, dart.functionType(bool, [E]));
1338 return new (_internal.IterableMixinWorkaround$(E))().takeWhile(this, tes t); 1347 return new (_internal.IterableMixinWorkaround$(E))().takeWhile(this, tes t);
1339 } 1348 }
1340 [$skip](n) { 1349 [$skip](n) {
1341 return new (_internal.IterableMixinWorkaround$(E))().skipList(this, n); 1350 return new (_internal.IterableMixinWorkaround$(E))().skipList(this, n);
1342 } 1351 }
1343 [$skipWhile](test) { 1352 [$skipWhile](test) {
1353 dart.as(test, dart.functionType(bool, [E]));
1344 return new (_internal.IterableMixinWorkaround$(E))().skipWhile(this, tes t); 1354 return new (_internal.IterableMixinWorkaround$(E))().skipWhile(this, tes t);
1345 } 1355 }
1346 [$reduce](combine) { 1356 [$reduce](combine) {
1357 dart.as(combine, dart.functionType(E, [E, E]));
1347 return dart.as(_internal.IterableMixinWorkaround.reduce(this, combine), E); 1358 return dart.as(_internal.IterableMixinWorkaround.reduce(this, combine), E);
1348 } 1359 }
1349 [$fold](initialValue, combine) { 1360 [$fold](initialValue, combine) {
1361 dart.as(combine, dart.functionType(dart.dynamic, [dart.dynamic, E]));
1350 return _internal.IterableMixinWorkaround.fold(this, initialValue, combin e); 1362 return _internal.IterableMixinWorkaround.fold(this, initialValue, combin e);
1351 } 1363 }
1352 [$firstWhere](test, opts) { 1364 [$firstWhere](test, opts) {
1365 dart.as(test, dart.functionType(bool, [E]));
1353 let orElse = opts && 'orElse' in opts ? opts.orElse : null; 1366 let orElse = opts && 'orElse' in opts ? opts.orElse : null;
1367 dart.as(orElse, dart.functionType(E, []));
1354 return dart.as(_internal.IterableMixinWorkaround.firstWhere(this, test, orElse), E); 1368 return dart.as(_internal.IterableMixinWorkaround.firstWhere(this, test, orElse), E);
1355 } 1369 }
1356 [$lastWhere](test, opts) { 1370 [$lastWhere](test, opts) {
1371 dart.as(test, dart.functionType(bool, [E]));
1357 let orElse = opts && 'orElse' in opts ? opts.orElse : null; 1372 let orElse = opts && 'orElse' in opts ? opts.orElse : null;
1373 dart.as(orElse, dart.functionType(E, []));
1358 return dart.as(_internal.IterableMixinWorkaround.lastWhereList(this, tes t, orElse), E); 1374 return dart.as(_internal.IterableMixinWorkaround.lastWhereList(this, tes t, orElse), E);
1359 } 1375 }
1360 [$singleWhere](test) { 1376 [$singleWhere](test) {
1377 dart.as(test, dart.functionType(bool, [E]));
1361 return dart.as(_internal.IterableMixinWorkaround.singleWhere(this, test) , E); 1378 return dart.as(_internal.IterableMixinWorkaround.singleWhere(this, test) , E);
1362 } 1379 }
1363 [$elementAt](index) { 1380 [$elementAt](index) {
1364 return this[$get](index); 1381 return this[$get](index);
1365 } 1382 }
1366 get [$first]() { 1383 get [$first]() {
1367 if (dart.notNull(this[$length]) > 0) 1384 if (dart.notNull(this[$length]) > 0)
1368 return this[$get](0); 1385 return this[$get](0);
1369 throw new StateError("No elements"); 1386 throw new StateError("No elements");
1370 } 1387 }
1371 get [$last]() { 1388 get [$last]() {
1372 if (dart.notNull(this[$length]) > 0) 1389 if (dart.notNull(this[$length]) > 0)
1373 return this[$get](dart.notNull(this[$length]) - 1); 1390 return this[$get](dart.notNull(this[$length]) - 1);
1374 throw new StateError("No elements"); 1391 throw new StateError("No elements");
1375 } 1392 }
1376 get [$single]() { 1393 get [$single]() {
1377 if (this[$length] == 1) 1394 if (this[$length] == 1)
1378 return this[$get](0); 1395 return this[$get](0);
1379 if (this[$length] == 0) 1396 if (this[$length] == 0)
1380 throw new StateError("No elements"); 1397 throw new StateError("No elements");
1381 throw new StateError("More than one element"); 1398 throw new StateError("More than one element");
1382 } 1399 }
1383 [$any](f) { 1400 [$any](f) {
1401 dart.as(f, dart.functionType(bool, [E]));
1384 return _internal.IterableMixinWorkaround.any(this, f); 1402 return _internal.IterableMixinWorkaround.any(this, f);
1385 } 1403 }
1386 [$every](f) { 1404 [$every](f) {
1405 dart.as(f, dart.functionType(bool, [E]));
1387 return _internal.IterableMixinWorkaround.every(this, f); 1406 return _internal.IterableMixinWorkaround.every(this, f);
1388 } 1407 }
1389 [$sort](compare) { 1408 [$sort](compare) {
1390 if (compare === void 0) 1409 if (compare === void 0)
1391 compare = null; 1410 compare = null;
1411 dart.as(compare, dart.functionType(int, [E, E]));
1392 this[$checkMutable]('sort'); 1412 this[$checkMutable]('sort');
1393 _internal.IterableMixinWorkaround.sortList(this, compare); 1413 _internal.IterableMixinWorkaround.sortList(this, compare);
1394 } 1414 }
1395 [$contains](other) { 1415 [$contains](other) {
1396 for (let i = 0; dart.notNull(i) < dart.notNull(this[$length]); i = dart. notNull(i) + 1) { 1416 for (let i = 0; dart.notNull(i) < dart.notNull(this[$length]); i = dart. notNull(i) + 1) {
1397 if (dart.equals(this[$get](i), other)) 1417 if (dart.equals(this[$get](i), other))
1398 return true; 1418 return true;
1399 } 1419 }
1400 return false; 1420 return false;
1401 } 1421 }
(...skipping 24 matching lines...) Expand all
1426 return _js_helper.Primitives.objectHashCode(this); 1446 return _js_helper.Primitives.objectHashCode(this);
1427 } 1447 }
1428 [$get](index) { 1448 [$get](index) {
1429 if (!(typeof index == 'number')) 1449 if (!(typeof index == 'number'))
1430 throw new ArgumentError(index); 1450 throw new ArgumentError(index);
1431 if (dart.notNull(index) >= dart.notNull(this[$length]) || dart.notNull(i ndex) < 0) 1451 if (dart.notNull(index) >= dart.notNull(this[$length]) || dart.notNull(i ndex) < 0)
1432 throw new RangeError.value(index); 1452 throw new RangeError.value(index);
1433 return dart.as(this[index], E); 1453 return dart.as(this[index], E);
1434 } 1454 }
1435 [$set](index, value) { 1455 [$set](index, value) {
1456 dart.as(value, E);
1436 this[$checkMutable]('indexed set'); 1457 this[$checkMutable]('indexed set');
1437 if (!(typeof index == 'number')) 1458 if (!(typeof index == 'number'))
1438 throw new ArgumentError(index); 1459 throw new ArgumentError(index);
1439 if (dart.notNull(index) >= dart.notNull(this[$length]) || dart.notNull(i ndex) < 0) 1460 if (dart.notNull(index) >= dart.notNull(this[$length]) || dart.notNull(i ndex) < 0)
1440 throw new RangeError.value(index); 1461 throw new RangeError.value(index);
1441 this[index] = value; 1462 this[index] = value;
1442 } 1463 }
1443 get [$length]() { 1464 get [$length]() {
1444 return dart.as(this.length, int); 1465 return dart.as(this.length, int);
1445 } 1466 }
1446 set [$length](newLength) { 1467 set [$length](newLength) {
1447 if (!(typeof newLength == 'number')) 1468 if (!(typeof newLength == 'number'))
1448 throw new ArgumentError(newLength); 1469 throw new ArgumentError(newLength);
1449 if (dart.notNull(newLength) < 0) 1470 if (dart.notNull(newLength) < 0)
1450 throw new RangeError.value(newLength); 1471 throw new RangeError.value(newLength);
1451 this[$checkGrowable]('set length'); 1472 this[$checkGrowable]('set length');
1452 this.length = newLength; 1473 this.length = newLength;
1453 } 1474 }
1454 [$add](value) { 1475 [$add](value) {
1476 dart.as(value, E);
1455 this[$checkGrowable]('add'); 1477 this[$checkGrowable]('add');
1456 this.push(value); 1478 this.push(value);
1457 } 1479 }
1458 [$addAll](iterable) { 1480 [$addAll](iterable) {
1481 dart.as(iterable, Iterable$(E));
1459 for (let e of iterable) { 1482 for (let e of iterable) {
1460 this[$add](e); 1483 this[$add](e);
1461 } 1484 }
1462 } 1485 }
1463 get [$reversed]() { 1486 get [$reversed]() {
1464 return new (_internal.IterableMixinWorkaround$(E))().reversedList(this); 1487 return new (_internal.IterableMixinWorkaround$(E))().reversedList(this);
1465 } 1488 }
1466 [$sort](compare) { 1489 [$sort](compare) {
1467 if (compare === void 0) 1490 if (compare === void 0)
1468 compare = null; 1491 compare = null;
1492 dart.as(compare, dart.functionType(int, [E, E]));
1469 _internal.IterableMixinWorkaround.sortList(this, compare); 1493 _internal.IterableMixinWorkaround.sortList(this, compare);
1470 } 1494 }
1471 [$shuffle](random) { 1495 [$shuffle](random) {
1472 if (random === void 0) 1496 if (random === void 0)
1473 random = null; 1497 random = null;
1474 _internal.IterableMixinWorkaround.shuffleList(this, random); 1498 _internal.IterableMixinWorkaround.shuffleList(this, random);
1475 } 1499 }
1476 [$indexOf](element, start) { 1500 [$indexOf](element, start) {
1501 dart.as(element, E);
1477 if (start === void 0) 1502 if (start === void 0)
1478 start = 0; 1503 start = 0;
1479 return _internal.IterableMixinWorkaround.indexOfList(this, element, star t); 1504 return _internal.IterableMixinWorkaround.indexOfList(this, element, star t);
1480 } 1505 }
1481 [$lastIndexOf](element, start) { 1506 [$lastIndexOf](element, start) {
1507 dart.as(element, E);
1482 if (start === void 0) 1508 if (start === void 0)
1483 start = null; 1509 start = null;
1484 return _internal.IterableMixinWorkaround.lastIndexOfList(this, element, start); 1510 return _internal.IterableMixinWorkaround.lastIndexOfList(this, element, start);
1485 } 1511 }
1486 [$clear]() { 1512 [$clear]() {
1487 this[$length] = 0; 1513 this[$length] = 0;
1488 } 1514 }
1489 [$insert](index, element) { 1515 [$insert](index, element) {
1516 dart.as(element, E);
1490 if (!(typeof index == 'number')) 1517 if (!(typeof index == 'number'))
1491 throw new ArgumentError(index); 1518 throw new ArgumentError(index);
1492 if (dart.notNull(index) < 0 || dart.notNull(index) > dart.notNull(this[$ length])) { 1519 if (dart.notNull(index) < 0 || dart.notNull(index) > dart.notNull(this[$ length])) {
1493 throw new RangeError.value(index); 1520 throw new RangeError.value(index);
1494 } 1521 }
1495 this[$checkGrowable]('insert'); 1522 this[$checkGrowable]('insert');
1496 this.splice(index, 0, element); 1523 this.splice(index, 0, element);
1497 } 1524 }
1498 [$insertAll](index, iterable) { 1525 [$insertAll](index, iterable) {
1526 dart.as(iterable, Iterable$(E));
1499 this[$checkGrowable]('insertAll'); 1527 this[$checkGrowable]('insertAll');
1500 _internal.IterableMixinWorkaround.insertAllList(this, index, iterable); 1528 _internal.IterableMixinWorkaround.insertAllList(this, index, iterable);
1501 } 1529 }
1502 [$setAll](index, iterable) { 1530 [$setAll](index, iterable) {
1531 dart.as(iterable, Iterable$(E));
1503 this[$checkMutable]('setAll'); 1532 this[$checkMutable]('setAll');
1504 _internal.IterableMixinWorkaround.setAllList(this, index, iterable); 1533 _internal.IterableMixinWorkaround.setAllList(this, index, iterable);
1505 } 1534 }
1506 [$remove](element) { 1535 [$remove](element) {
1507 this[$checkGrowable]('remove'); 1536 this[$checkGrowable]('remove');
1508 for (let i = 0; dart.notNull(i) < dart.notNull(this[$length]); i = dart. notNull(i) + 1) { 1537 for (let i = 0; dart.notNull(i) < dart.notNull(this[$length]); i = dart. notNull(i) + 1) {
1509 if (dart.equals(this[$get](i), /* Unimplemented unknown name */value)) { 1538 if (dart.equals(this[$get](i), /* Unimplemented unknown name */value)) {
1510 this.splice(i, 1); 1539 this.splice(i, 1);
1511 return true; 1540 return true;
1512 } 1541 }
1513 } 1542 }
1514 return false; 1543 return false;
1515 } 1544 }
1516 [$removeAt](index) { 1545 [$removeAt](index) {
1517 if (!(typeof index == 'number')) 1546 if (!(typeof index == 'number'))
1518 throw new ArgumentError(index); 1547 throw new ArgumentError(index);
1519 if (dart.notNull(index) < 0 || dart.notNull(index) >= dart.notNull(this[ $length])) { 1548 if (dart.notNull(index) < 0 || dart.notNull(index) >= dart.notNull(this[ $length])) {
1520 throw new RangeError.value(index); 1549 throw new RangeError.value(index);
1521 } 1550 }
1522 this[$checkGrowable]('removeAt'); 1551 this[$checkGrowable]('removeAt');
1523 return dart.as(this.splice(index, 1)[0], E); 1552 return dart.as(this.splice(index, 1)[0], E);
1524 } 1553 }
1525 [$removeLast]() { 1554 [$removeLast]() {
1526 this[$checkGrowable]('removeLast'); 1555 this[$checkGrowable]('removeLast');
1527 if (this[$length] == 0) 1556 if (this[$length] == 0)
1528 throw new RangeError.value(-1); 1557 throw new RangeError.value(-1);
1529 return dart.as(this.pop(), E); 1558 return dart.as(this.pop(), E);
1530 } 1559 }
1531 [$removeWhere](test) { 1560 [$removeWhere](test) {
1561 dart.as(test, dart.functionType(bool, [E]));
1532 _internal.IterableMixinWorkaround.removeWhereList(this, test); 1562 _internal.IterableMixinWorkaround.removeWhereList(this, test);
1533 } 1563 }
1534 [$retainWhere](test) { 1564 [$retainWhere](test) {
1565 dart.as(test, dart.functionType(bool, [E]));
1535 _internal.IterableMixinWorkaround.removeWhereList(this, element => !dart .notNull(test(element))); 1566 _internal.IterableMixinWorkaround.removeWhereList(this, element => !dart .notNull(test(element)));
1536 } 1567 }
1537 [$sublist](start, end) { 1568 [$sublist](start, end) {
1538 if (end === void 0) 1569 if (end === void 0)
1539 end = null; 1570 end = null;
1540 dart.dcall(/* Unimplemented unknown name */checkNull, start); 1571 dart.dcall(/* Unimplemented unknown name */checkNull, start);
1541 if (!(typeof start == 'number')) 1572 if (!(typeof start == 'number'))
1542 throw new ArgumentError(start); 1573 throw new ArgumentError(start);
1543 if (dart.notNull(start) < 0 || dart.notNull(start) > dart.notNull(this[$ length])) { 1574 if (dart.notNull(start) < 0 || dart.notNull(start) > dart.notNull(this[$ length])) {
1544 throw new RangeError.range(start, 0, this[$length]); 1575 throw new RangeError.range(start, 0, this[$length]);
1545 } 1576 }
1546 if (end == null) { 1577 if (end == null) {
1547 end = this[$length]; 1578 end = this[$length];
1548 } else { 1579 } else {
1549 if (!(typeof end == 'number')) 1580 if (!(typeof end == 'number'))
1550 throw new ArgumentError(end); 1581 throw new ArgumentError(end);
1551 if (dart.notNull(end) < dart.notNull(start) || dart.notNull(end) > dar t.notNull(this[$length])) { 1582 if (dart.notNull(end) < dart.notNull(start) || dart.notNull(end) > dar t.notNull(this[$length])) {
1552 throw new RangeError.range(end, start, this[$length]); 1583 throw new RangeError.range(end, start, this[$length]);
1553 } 1584 }
1554 } 1585 }
1555 if (start == end) 1586 if (start == end)
1556 return dart.setType([], List$(E)); 1587 return dart.setType([], List$(E));
1557 return new _interceptors.JSArray$(E).markGrowable(this.slice(start, end) ); 1588 return new _interceptors.JSArray$(E).markGrowable(this.slice(start, end) );
1558 } 1589 }
1559 [$getRange](start, end) { 1590 [$getRange](start, end) {
1560 return new (_internal.IterableMixinWorkaround$(E))().getRangeList(this, start, end); 1591 return new (_internal.IterableMixinWorkaround$(E))().getRangeList(this, start, end);
1561 } 1592 }
1562 [$setRange](start, end, iterable, skipCount) { 1593 [$setRange](start, end, iterable, skipCount) {
1594 dart.as(iterable, Iterable$(E));
1563 if (skipCount === void 0) 1595 if (skipCount === void 0)
1564 skipCount = 0; 1596 skipCount = 0;
1565 this[$checkMutable]('set range'); 1597 this[$checkMutable]('set range');
1566 _internal.IterableMixinWorkaround.setRangeList(this, start, end, iterabl e, skipCount); 1598 _internal.IterableMixinWorkaround.setRangeList(this, start, end, iterabl e, skipCount);
1567 } 1599 }
1568 [$removeRange](start, end) { 1600 [$removeRange](start, end) {
1569 this[$checkGrowable]('removeRange'); 1601 this[$checkGrowable]('removeRange');
1570 let receiverLength = this[$length]; 1602 let receiverLength = this[$length];
1571 if (dart.notNull(start) < 0 || dart.notNull(start) > dart.notNull(receiv erLength)) { 1603 if (dart.notNull(start) < 0 || dart.notNull(start) > dart.notNull(receiv erLength)) {
1572 throw new RangeError.range(start, 0, receiverLength); 1604 throw new RangeError.range(start, 0, receiverLength);
1573 } 1605 }
1574 if (dart.notNull(end) < dart.notNull(start) || dart.notNull(end) > dart. notNull(receiverLength)) { 1606 if (dart.notNull(end) < dart.notNull(start) || dart.notNull(end) > dart. notNull(receiverLength)) {
1575 throw new RangeError.range(end, start, receiverLength); 1607 throw new RangeError.range(end, start, receiverLength);
1576 } 1608 }
1577 _internal.Lists.copy(this, end, this, start, dart.notNull(receiverLength ) - dart.notNull(end)); 1609 _internal.Lists.copy(this, end, this, start, dart.notNull(receiverLength ) - dart.notNull(end));
1578 this[$length] = dart.notNull(receiverLength) - (dart.notNull(end) - dart .notNull(start)); 1610 this[$length] = dart.notNull(receiverLength) - (dart.notNull(end) - dart .notNull(start));
1579 } 1611 }
1580 [$fillRange](start, end, fillValue) { 1612 [$fillRange](start, end, fillValue) {
1581 if (fillValue === void 0) 1613 if (fillValue === void 0)
1582 fillValue = null; 1614 fillValue = null;
1615 dart.as(fillValue, E);
1583 this[$checkMutable]('fill range'); 1616 this[$checkMutable]('fill range');
1584 _internal.IterableMixinWorkaround.fillRangeList(this, start, end, fillVa lue); 1617 _internal.IterableMixinWorkaround.fillRangeList(this, start, end, fillVa lue);
1585 } 1618 }
1586 [$replaceRange](start, end, replacement) { 1619 [$replaceRange](start, end, replacement) {
1620 dart.as(replacement, Iterable$(E));
1587 this[$checkGrowable]('removeRange'); 1621 this[$checkGrowable]('removeRange');
1588 _internal.IterableMixinWorkaround.replaceRangeList(this, start, end, rep lacement); 1622 _internal.IterableMixinWorkaround.replaceRangeList(this, start, end, rep lacement);
1589 } 1623 }
1590 [$asMap]() { 1624 [$asMap]() {
1591 return new (_internal.IterableMixinWorkaround$(E))().asMapList(this); 1625 return new (_internal.IterableMixinWorkaround$(E))().asMapList(this);
1592 } 1626 }
1593 } 1627 }
1628 dart.setBaseClass(List, dart.global.Array);
1594 List[dart.implements] = () => [Iterable$(E), _internal.EfficientLength]; 1629 List[dart.implements] = () => [Iterable$(E), _internal.EfficientLength];
1595 dart.defineNamedConstructor(List, 'filled'); 1630 dart.defineNamedConstructor(List, 'filled');
1596 dart.defineNamedConstructor(List, 'from'); 1631 dart.defineNamedConstructor(List, 'from');
1597 dart.defineNamedConstructor(List, 'generate'); 1632 dart.defineNamedConstructor(List, 'generate');
1598 return List; 1633 return List;
1599 }); 1634 });
1600 let List = List$(); 1635 let List = List$();
1601 dart.registerExtension(dart.global.Array, List); 1636 dart.registerExtension(dart.global.Array, List);
1602 let Map$ = dart.generic(function(K, V) { 1637 let Map$ = dart.generic(function(K, V) {
1603 class Map extends Object { 1638 class Map extends Object {
(...skipping 1839 matching lines...) Expand 10 before | Expand all | Expand 10 after
3443 exports.StackTrace = StackTrace; 3478 exports.StackTrace = StackTrace;
3444 exports.Stopwatch = Stopwatch; 3479 exports.Stopwatch = Stopwatch;
3445 exports.String = String; 3480 exports.String = String;
3446 exports.RuneIterator = RuneIterator; 3481 exports.RuneIterator = RuneIterator;
3447 exports.StringBuffer = StringBuffer; 3482 exports.StringBuffer = StringBuffer;
3448 exports.StringSink = StringSink; 3483 exports.StringSink = StringSink;
3449 exports.Symbol = Symbol; 3484 exports.Symbol = Symbol;
3450 exports.Type = Type; 3485 exports.Type = Type;
3451 exports.Uri = Uri; 3486 exports.Uri = Uri;
3452 })(core || (core = {})); 3487 })(core || (core = {}));
OLDNEW
« no previous file with comments | « lib/runtime/dart/convert.js ('k') | lib/runtime/dart/math.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698