all files / TypeScript.NET/source/System/Collections/ List.js

62.64% Statements 57/91
35.14% Branches 13/37
70% Functions 14/20
64.29% Lines 54/84
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122                              114×   54× 54×   18× 18×                                                                                     39×   12×                
/*!
 * @author electricessence / https://github.com/electricessence/
 * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md
 */
var __extends = (this && this.__extends) || function (d, b) {
    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
    function __() { this.constructor = d; }
    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
(function (factory) {
    Eif (typeof module === 'object' && typeof module.exports === 'object') {
        var v = factory(require, exports); Iif (v !== undefined) module.exports = v;
    }
    else if (typeof define === 'function' && define.amd) {
        define(["require", "exports", "../Compare", "./Array/Utility", "./Enumeration/Enumerator", "../Types", "./Enumeration/ArrayEnumerator", "./CollectionBase"], factory);
    }
})(function (require, exports) {
    "use strict";
    var Compare_1 = require("../Compare");
    var Utility_1 = require("./Array/Utility");
    var Enumerator_1 = require("./Enumeration/Enumerator");
    var Types_1 = require("../Types");
    var ArrayEnumerator_1 = require("./Enumeration/ArrayEnumerator");
    var CollectionBase_1 = require("./CollectionBase");
    var List = (function (_super) {
        __extends(List, _super);
        function List(source, equalityComparer) {
            Eif (equalityComparer === void 0) { equalityComparer = Compare_1.areEqual; }
            _super.call(this, null, equalityComparer);
            var _ = this;
            if (Array.isArray(source)) {
                _._source = source.slice();
            }
            else {
                _._source = [];
                _._importEntries(source);
            }
        }
        List.prototype.getCount = function () {
            return this._source.length;
        };
        List.prototype._addInternal = function (entry) {
            this._source.push(entry);
            return true;
        };
        List.prototype._removeInternal = function (entry, max) {
            Iif (max === void 0) { max = Infinity; }
            return Utility_1.remove(this._source, entry, max, this._equalityComparer);
        };
        List.prototype._clearInternal = function () {
            var len = this._source.length;
            this._source.length = 0;
            return len;
        };
        List.prototype._importEntries = function (entries) {
            Iif (Types_1.Type.isArrayLike(entries)) {
                var len = entries.length;
                if (!len)
                    return 0;
                var s = this._source;
                var first = s.length;
                s.length += len;
                for (var i = 0; i < len; i++) {
                    s[i + first] = entries[i];
                }
                return len;
            }
            else {
                return _super.prototype._importEntries.call(this, entries);
            }
        };
        List.prototype.get = function (index) {
            return this._source[index];
        };
        List.prototype.set = function (index, value) {
            var s = this._source;
            if (index < s.length && Compare_1.areEqual(value, s[index]))
                return false;
            s[index] = value;
            this._onModified();
            return true;
        };
        List.prototype.indexOf = function (item) {
            return Utility_1.indexOf(this._source, item, this._equalityComparer);
        };
        List.prototype.insert = function (index, value) {
            var s = this._source;
            if (index < s.length) {
                this._source.splice(index, 0, value);
            }
            else {
                this._source[index] = value;
            }
            this._onModified();
        };
        List.prototype.removeAt = function (index) {
            if (Utility_1.removeIndex(this._source, index)) {
                this._onModified();
                return true;
            }
            return false;
        };
        List.prototype.contains = function (item) {
            return Utility_1.contains(this._source, item, this._equalityComparer);
        };
        List.prototype.copyTo = function (target, index) {
            return Utility_1.copyTo(this._source, target, 0, index);
        };
        List.prototype.getEnumerator = function () {
            return new ArrayEnumerator_1.ArrayEnumerator(this._source);
        };
        List.prototype.forEach = function (action, useCopy) {
            var s = this._source;
            return Enumerator_1.forEach(useCopy ? s.slice() : s, action);
        };
        return List;
    }(CollectionBase_1.CollectionBase));
    exports.List = List;
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.default = List;
});
//# sourceMappingURL=List.js.map