lr-core
Version:
Line Rider core library
53 lines (44 loc) • 1.05 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _assignPrototype = require('./assignPrototype.js');
var _assignPrototype2 = _interopRequireDefault(_assignPrototype);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
class SubclassableArray {
constructor(...args) {
this.__array__ = new Array(...args);
}
toArray() {
return this.__array__;
}
get(i) {
return this.__array__[i];
}
set(i, v) {
this.__array__[i] = v;
}
get length() {
return this.__array__.length;
}
[Symbol.iterator]() {
return this.__array__[Symbol.iterator]();
}
}
(0, _assignPrototype2.default)(Array, SubclassableArray, '__array__');
const ARRAY_SUBCLASSABLE = (() => {
class C extends Array {}
var c = new C();
return c.concat(1) instanceof C;
})();
exports.default = ARRAY_SUBCLASSABLE ? class extends Array {
toArray() {
return this;
}
get(i) {
return this[i];
}
set(i, v) {
this[i] = v;
}
} : SubclassableArray;