improve array to set deprecation for access to the first item
This commit is contained in:
parent
9c0b320fd4
commit
746d377614
|
@ -134,20 +134,24 @@ exports.arrayToSetDeprecation = (set, name) => {
|
||||||
};
|
};
|
||||||
return fn;
|
return fn;
|
||||||
};
|
};
|
||||||
let indexerDefined = 0;
|
const defineIndexGetter = index => {
|
||||||
|
Object.defineProperty(set, index, {
|
||||||
|
get: createIndexGetter(index),
|
||||||
|
set(value) {
|
||||||
|
throw new Error(
|
||||||
|
`${name} was changed from Array to Set (indexing Array with write is not possible)`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
defineIndexGetter(0);
|
||||||
|
let indexerDefined = 1;
|
||||||
Object.defineProperty(set, "length", {
|
Object.defineProperty(set, "length", {
|
||||||
get() {
|
get() {
|
||||||
dLength();
|
dLength();
|
||||||
const length = this.size;
|
const length = this.size;
|
||||||
for (indexerDefined; indexerDefined < length; indexerDefined++) {
|
for (indexerDefined; indexerDefined < length + 1; indexerDefined++) {
|
||||||
Object.defineProperty(set, indexerDefined, {
|
defineIndexGetter(indexerDefined);
|
||||||
get: createIndexGetter(indexerDefined),
|
|
||||||
set(value) {
|
|
||||||
throw new Error(
|
|
||||||
`${name} was changed from Array to Set (indexing Array with write is not possible)`
|
|
||||||
);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
return length;
|
return length;
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue